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}