Skip to main content

devela/ui/event/key/
media.rs

1// devela::ui::event::key::media
2//
3//! Defines [`KeyMedia`].
4//
5
6use crate::ConstInit;
7
8#[doc = crate::_tags!(interaction)]
9/// Media key codes.
10#[doc = crate::_doc_meta!{
11    location("ui/event"),
12    test_size_of(KeyMedia = 1|8; niche Option),
13}]
14///
15/// These keys are commonly found on multimedia keyboards and remote controls.
16//
17// - https://docs.rs/crossterm/latest/crossterm/event/enum.MediaKey.html
18#[repr(u8)]
19#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
20#[non_exhaustive]
21pub enum KeyMedia {
22    /// Starts media playback.
23    Play,
24    /// Pauses media playback.
25    Pause,
26    /// Toggles between playing and pausing media.
27    PlayPause,
28    /// Plays media in reverse.
29    Reverse,
30    /// Stops media playback.
31    Stop,
32    /// Fast-forwards through media.
33    FastForward,
34    /// Rewinds through media.
35    Rewind,
36    /// Skips to the next media track.
37    Next,
38    /// Returns to the previous media track.
39    Previous,
40    /// Starts recording media.
41    Record,
42    /// Decreases the audio volume.
43    LowerVolume,
44    /// Increases the audio volume.
45    RaiseVolume,
46    /// Mutes or unmutes the audio.
47    MuteVolume,
48
49    /* Uncommon multimedia keys */
50    /// Ejects a removable media disk (found on some keyboards, especially Macs).
51    Eject,
52    /// Opens the default media player application.
53    MediaSelect,
54    /// Launches a media-related application.
55    LaunchMedia,
56
57    /// Toggles bass boost mode.
58    BassBoost,
59    /// Increases bass levels.
60    BassUp,
61    /// Decreases bass levels.
62    BassDown,
63    /// Increases treble levels.
64    TrebleUp,
65    /// Decreases treble levels.
66    TrebleDown,
67
68    /// Mutes or unmutes the microphone.
69    MicrophoneMute,
70    /// Increases the microphone input volume.
71    MicrophoneVolumeUp,
72    /// Decreases the microphone input volume.
73    MicrophoneVolumeDown,
74
75    /// Increases the screen brightness.
76    BrightnessUp,
77    /// Decreases the screen brightness.
78    BrightnessDown,
79
80    /// Puts the system into sleep mode.
81    Sleep,
82    /// Wakes the system from sleep mode.
83    Wake,
84    /// Powers the system off or performs a power-related action.
85    Power,
86}
87impl ConstInit for KeyMedia {
88    const INIT: Self = Self::Play;
89}