diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..d902eaa --- /dev/null +++ b/src/main.rs @@ -0,0 +1,45 @@ +mod app; +mod cue_view; +mod player; +mod preferences; +mod subtitle_extractor; +mod subtitle_view; +mod transcript; +mod util; + +use std::env; + +use gtk::{CssProvider, STYLE_PROVIDER_PRIORITY_APPLICATION, gdk, glib}; +use relm4::RelmApp; + +use crate::app::App; + +fn main() { + env_logger::init(); + + let args: Vec<String> = env::args().collect(); + if args.len() != 2 { + eprintln!("Usage: {} <video_url>", args[0]); + std::process::exit(1); + } + let video_url = args[1].clone(); + + gtk::init().expect("Failed to initialize GTK"); + gst::init().expect("Failed to initialize GStreamer"); + ffmpeg::init().expect("Failed to initialize FFmpeg"); + + let css_provider = CssProvider::new(); + css_provider.load_from_bytes(&glib::Bytes::from_static(include_bytes!( + "../resources/style.css" + ))); + gtk::style_context_add_provider_for_display( + &gdk::Display::default().unwrap(), + &css_provider, + STYLE_PROVIDER_PRIORITY_APPLICATION, + ); + + relm4::RELM_THREADS.set(4).unwrap(); + + let relm = RelmApp::new("tc.mal.lleap").with_args(vec![]); + relm.run::<App>(video_url); +} |