key_state

Function key_state 

Source
pub fn key_state(key: KeyCode) -> bool
Expand description

Checks whether a key is currently pushed (down).

Examples found in repository?
examples/keyboard.rs (line 43)
8pub extern "C" fn dosmain() -> i32 {
9    goto_xy(2, 2);
10    put_str("KEYBOARD DEMO");
11    goto_xy(0, 16);
12    put_str("ESC - quit");
13    curs_off();
14    while !shutting_down() {
15        wait_vbl();
16        let keys = read_keys();
17
18        if !keys.is_empty() {
19            goto_xy(5, 5);
20            dos_like::text_color(3);
21            put_str("!");
22            dos_like::text_color(7);
23
24            for (i, key) in keys.iter().enumerate() {
25                goto_xy(2, 8 + i as u16);
26                put_str("                  ");
27                goto_xy(2, 8 + i as u16);
28                if key.is_pressed() {
29                    put_str(format!("{:?} pressed             ", key.key_code()));
30                } else {
31                    put_str(format!("{:?} released            ", key.key_code()));
32                }
33            }
34            for i in keys.len()..8 {
35                goto_xy(2, 8 + i as u16);
36                put_str("                              ");
37            }
38        } else {
39            goto_xy(5, 5);
40            put_str(" ");
41        }
42
43        if key_state(KeyCode::KEY_ESCAPE) {
44            break;
45        }
46    }
47    0
48}
More examples
Hide additional examples
examples/sound.rs (line 125)
15pub extern "C" fn dosmain() -> i32 {
16    unsafe {
17        let mus = Music::load_mus("dos-like-sys/dos-like/files/sound/doom.mus")
18            .expect("Could not load doom.mus");
19        let mid = Music::load_mid("dos-like-sys/dos-like/files/sound/simon.mid")
20            .expect("Could not load simon.mid");
21        let r#mod = Music::load_mod("dos-like-sys/dos-like/files/sound/cfodder.mod")
22            .expect("Could not load cfodder.mod");
23        let opb = Music::load_opb("dos-like-sys/dos-like/files/sound/doom.opb")
24            .expect("Could not load doom.opb");
25        let wav = load_wav("dos-like-sys/dos-like/files/sound/soundcard.wav")
26            .expect("Could not load soundcard.wav");
27        let doom_soundbank = install_user_soundbank("dos-like-sys/dos-like/files/sound/doom.op2")
28            .expect("Could not load doom.op2");
29
30        let mut use_awe32 = true;
31
32        put_str("SOUND DEMO");
33        goto_xy(0, 2);
34        put_str("1 - Play MIDI song");
35        goto_xy(0, 3);
36        put_str("2 - Play MUS song");
37        goto_xy(0, 4);
38        put_str("3 - Play MOD song");
39        goto_xy(0, 5);
40        put_str("4 - Play WAV sound on channel 1");
41        goto_xy(0, 6);
42        put_str("5 - Play WAV sound on channel 2");
43        goto_xy(0, 7);
44        put_str("6 - Play WAV sound on channel 3");
45        goto_xy(0, 8);
46        put_str("7 - Stop sound and music");
47        goto_xy(0, 9);
48        put_str("8 - Sound mode 11khz 8bit mono (default)");
49        goto_xy(0, 10);
50        put_str("9 - Sound mode 44khz 16bit stereo");
51        goto_xy(0, 11);
52        put_str("0 - Sound mode 5khz 8bit mono");
53        goto_xy(0, 12);
54        put_str("A - Use AWE32 for MIDI/MUS (default)");
55        goto_xy(0, 13);
56        put_str("S - Use SoundBlaster16 for MIDI/MUS");
57        goto_xy(0, 14);
58        put_str("O - Play OPB song");
59        goto_xy(0, 16);
60        put_str("ESC - quit");
61        curs_off();
62        while !shutting_down() {
63            let key = *readchars() as u8;
64            match key {
65                b'1' => {
66                    if use_awe32 {
67                        set_soundbank(&Soundbank::DEFAULT_AWE32);
68                    } else {
69                        set_soundbank(&Soundbank::DEFAULT_SB16);
70                    }
71                    mid.play(false, 255);
72                }
73                b'2' => {
74                    if use_awe32 {
75                        set_soundbank(&Soundbank::DEFAULT_AWE32);
76                    } else {
77                        set_soundbank(&doom_soundbank);
78                    }
79                    mus.play(false, 255);
80                }
81                b'3' => {
82                    r#mod.play(false, 255);
83                }
84                b'O' | b'o' => {
85                    opb.play(false, 255);
86                }
87                b'4' => {
88                    play_sound(0, &wav, false, 128);
89                }
90                b'5' => {
91                    play_sound(1, &wav, false, 128);
92                }
93                b'6' => {
94                    play_sound(2, &wav, false, 128);
95                }
96                b'7' => {
97                    stop_music();
98                    stop_sound(0);
99                    stop_sound(1);
100                    stop_sound(2);
101                }
102                b'8' => {
103                    set_sound_mode(SoundMode::Mono8bit11025);
104                }
105                b'9' => {
106                    set_sound_mode(SoundMode::Mono16Bit44100);
107                }
108                b'0' => {
109                    set_sound_mode(SoundMode::Mono8bit5000);
110                }
111                b'A' | b'a' => {
112                    if !use_awe32 {
113                        use_awe32 = true;
114                        stop_music();
115                    }
116                }
117                b'S' | b's' => {
118                    if use_awe32 {
119                        use_awe32 = false;
120                        stop_music();
121                    }
122                }
123                _ => {}
124            }
125            if key_state(KeyCode::KEY_ESCAPE) {
126                break;
127            }
128        }
129    }
130    0
131}