summary refs log tree commit diff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs45
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);
+}