aboutsummaryrefslogtreecommitdiffstats
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/play.rs52
-rw-r--r--src/cmd/record.rs4
-rw-r--r--src/cmd/stream.rs4
-rw-r--r--src/cmd/watch.rs90
4 files changed, 83 insertions, 67 deletions
diff --git a/src/cmd/play.rs b/src/cmd/play.rs
index cd78f36..8c30bef 100644
--- a/src/cmd/play.rs
+++ b/src/cmd/play.rs
@@ -261,8 +261,8 @@ enum FileState {
struct PlaySession {
file: FileState,
player: Player,
- raw_screen: Option<crossterm::RawScreen>,
- alternate_screen: Option<crossterm::AlternateScreen>,
+ raw_screen: Option<crossterm::screen::RawScreen>,
+ alternate_screen: Option<crossterm::screen::AlternateScreen>,
key_reader: crate::key_reader::KeyReader,
last_frame_time: std::time::Duration,
last_frame_screen: Option<vt100::Screen>,
@@ -292,41 +292,41 @@ impl PlaySession {
}
}
- fn keypress(&mut self, e: &crossterm::InputEvent) -> Result<bool> {
+ fn keypress(&mut self, e: &crossterm::input::InputEvent) -> Result<bool> {
match e {
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- 'q',
- )) => return Ok(true),
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- ' ',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('q'),
+ ) => return Ok(true),
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char(' '),
+ ) => {
self.player.toggle_pause();
self.redraw()?;
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- '+',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('+'),
+ ) => {
self.player.playback_ratio_incr();
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- '-',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('-'),
+ ) => {
self.player.playback_ratio_decr();
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- '=',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('='),
+ ) => {
self.player.playback_ratio_reset();
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- '<',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('<'),
+ ) => {
self.player.back();
self.redraw()?;
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- '>',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('>'),
+ ) => {
self.player.forward();
self.redraw()?;
}
@@ -519,13 +519,13 @@ impl PlaySession {
fn poll_input(&mut self) -> component_future::Poll<(), Error> {
if self.raw_screen.is_none() {
self.raw_screen = Some(
- crossterm::RawScreen::into_raw_mode()
+ crossterm::screen::RawScreen::into_raw_mode()
.context(crate::error::ToRawMode)?,
);
}
if self.alternate_screen.is_none() {
self.alternate_screen = Some(
- crossterm::AlternateScreen::to_alternate(false)
+ crossterm::screen::AlternateScreen::to_alternate(false)
.context(crate::error::ToAlternateScreen)?,
);
}
diff --git a/src/cmd/record.rs b/src/cmd/record.rs
index d25df4e..ec0a7ce 100644
--- a/src/cmd/record.rs
+++ b/src/cmd/record.rs
@@ -75,7 +75,7 @@ struct RecordSession {
sent_local: usize,
needs_flush: bool,
done: bool,
- raw_screen: Option<crossterm::RawScreen>,
+ raw_screen: Option<crossterm::screen::RawScreen>,
}
impl RecordSession {
@@ -168,7 +168,7 @@ impl RecordSession {
}) => {
if self.raw_screen.is_none() {
self.raw_screen = Some(
- crossterm::RawScreen::into_raw_mode()
+ crossterm::screen::RawScreen::into_raw_mode()
.context(crate::error::ToRawMode)?,
);
}
diff --git a/src/cmd/stream.rs b/src/cmd/stream.rs
index b4f1a26..503a5ad 100644
--- a/src/cmd/stream.rs
+++ b/src/cmd/stream.rs
@@ -128,7 +128,7 @@ struct StreamSession<
needs_flush: bool,
connected: bool,
done: bool,
- raw_screen: Option<crossterm::RawScreen>,
+ raw_screen: Option<crossterm::screen::RawScreen>,
}
impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
@@ -246,7 +246,7 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
}) => {
if self.raw_screen.is_none() {
self.raw_screen = Some(
- crossterm::RawScreen::into_raw_mode()
+ crossterm::screen::RawScreen::into_raw_mode()
.context(crate::error::ToRawMode)?,
);
}
diff --git a/src/cmd/watch.rs b/src/cmd/watch.rs
index 0e4e197..01340ff 100644
--- a/src/cmd/watch.rs
+++ b/src/cmd/watch.rs
@@ -112,11 +112,11 @@ pub fn config(
enum State<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static> {
Temporary,
LoggingIn {
- alternate_screen: crossterm::AlternateScreen,
+ alternate_screen: crossterm::screen::AlternateScreen,
},
Choosing {
sessions: crate::session_list::SessionList,
- alternate_screen: crossterm::AlternateScreen,
+ alternate_screen: crossterm::screen::AlternateScreen,
},
Watching {
client: Box<crate::client::Client<S>>,
@@ -197,7 +197,7 @@ struct WatchSession<
> + Send,
>,
state: State<S>,
- raw_screen: Option<crossterm::RawScreen>,
+ raw_screen: Option<crossterm::screen::RawScreen>,
needs_redraw: bool,
}
@@ -242,12 +242,12 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
fn loading_keypress(
&mut self,
- e: &crossterm::InputEvent,
+ e: &crossterm::input::InputEvent,
) -> Result<bool> {
match e {
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- 'q',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('q'),
+ ) => {
return Ok(true);
}
_ => {}
@@ -284,7 +284,10 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
Ok(())
}
- fn list_keypress(&mut self, e: &crossterm::InputEvent) -> Result<bool> {
+ fn list_keypress(
+ &mut self,
+ e: &crossterm::input::InputEvent,
+ ) -> Result<bool> {
let sessions =
if let State::Choosing { sessions, .. } = &mut self.state {
sessions
@@ -293,30 +296,32 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
};
match e {
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- ' ',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char(' '),
+ ) => {
self.list_client
.send_message(crate::protocol::Message::list_sessions());
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- 'q',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('q'),
+ ) => {
return Ok(true);
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- '<',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('<'),
+ ) => {
sessions.prev_page();
self.needs_redraw = true;
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- '>',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('>'),
+ ) => {
sessions.next_page();
self.needs_redraw = true;
}
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(c)) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char(c),
+ ) => {
if let Some(id) = sessions.id_for(*c) {
let client = crate::client::Client::watch(
(self.make_connector)(),
@@ -325,9 +330,13 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
id,
);
self.state.watching(client);
- crossterm::terminal()
- .clear(crossterm::ClearType::All)
- .context(crate::error::WriteTerminalCrossterm)?;
+ crossterm::execute!(
+ std::io::stdout(),
+ crossterm::terminal::Clear(
+ crossterm::terminal::ClearType::All
+ )
+ )
+ .context(crate::error::WriteTerminalCrossterm)?;
}
}
_ => {}
@@ -375,11 +384,14 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
Ok(())
}
- fn watch_keypress(&mut self, e: &crossterm::InputEvent) -> Result<bool> {
+ fn watch_keypress(
+ &mut self,
+ e: &crossterm::input::InputEvent,
+ ) -> Result<bool> {
match e {
- crossterm::InputEvent::Keyboard(crossterm::KeyEvent::Char(
- 'q',
- )) => {
+ crossterm::input::InputEvent::Keyboard(
+ crossterm::input::KeyEvent::Char('q'),
+ ) => {
self.reconnect(false)?;
}
_ => {}
@@ -410,9 +422,11 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
}
fn display_loading_screen(&self) -> Result<()> {
- crossterm::terminal()
- .clear(crossterm::ClearType::All)
- .context(crate::error::WriteTerminalCrossterm)?;
+ crossterm::execute!(
+ std::io::stdout(),
+ crossterm::terminal::Clear(crossterm::terminal::ClearType::All)
+ )
+ .context(crate::error::WriteTerminalCrossterm)?;
println!("loading...\r");
if let Some(err) = self.list_client.last_error() {
@@ -478,9 +492,11 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
- watch_width
- 3;
- crossterm::terminal()
- .clear(crossterm::ClearType::All)
- .context(crate::error::WriteTerminalCrossterm)?;
+ crossterm::execute!(
+ std::io::stdout(),
+ crossterm::terminal::Clear(crossterm::terminal::ClearType::All)
+ )
+ .context(crate::error::WriteTerminalCrossterm)?;
println!("welcome to teleterm\r");
println!("available sessions:\r");
println!("\r");
@@ -595,7 +611,7 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
fn poll_input(&mut self) -> component_future::Poll<(), Error> {
if self.raw_screen.is_none() {
self.raw_screen = Some(
- crossterm::RawScreen::into_raw_mode()
+ crossterm::screen::RawScreen::into_raw_mode()
.context(crate::error::ToRawMode)?,
);
}
@@ -675,8 +691,8 @@ impl<S: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + 'static>
}
}
-fn new_alternate_screen() -> Result<crossterm::AlternateScreen> {
- crossterm::AlternateScreen::to_alternate(false)
+fn new_alternate_screen() -> Result<crossterm::screen::AlternateScreen> {
+ crossterm::screen::AlternateScreen::to_alternate(false)
.context(crate::error::ToAlternateScreen)
}