aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/ttyplay/input.rs
blob: dbdedd61448b269d24046c7f99ca91946189fee5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pub async fn handle_input(
    key: textmode::Key,
    event_w: async_std::channel::Sender<crate::event::Event>,
) -> anyhow::Result<()> {
    let event = match key {
        textmode::Key::Char('g' | '0' | ')') => {
            crate::event::Event::FirstFrame
        }
        textmode::Key::Char('G' | '$') => crate::event::Event::LastFrame,
        textmode::Key::Char('l' | 'n') => crate::event::Event::NextFrame,
        textmode::Key::Char('h' | 'p') => crate::event::Event::PreviousFrame,
        textmode::Key::Char('q') => crate::event::Event::Quit,
        textmode::Key::Char(' ') => crate::event::Event::Pause,
        _ => return Ok(()),
    };

    event_w.send(event).await?;

    Ok(())
}