mirror of
https://github.com/xlmnxp/blue-recorder.git
synced 2024-11-23 17:13:11 +03:00
Compare commits
3 Commits
ff94308bd9
...
75e2b891a7
Author | SHA1 | Date | |
---|---|---|---|
75e2b891a7 | |||
|
57fab3a927 | ||
|
13c6ea3e13 |
@ -81,7 +81,7 @@ pub fn get(selection: &str, key: &str) -> String {
|
|||||||
.join("blue-recorder")
|
.join("blue-recorder")
|
||||||
.join("config.ini");
|
.join("config.ini");
|
||||||
String::from(
|
String::from(
|
||||||
Ini::load_from_file(&config_path)
|
Ini::load_from_file(config_path)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.with_section(Some(selection))
|
.with_section(Some(selection))
|
||||||
.get(key)
|
.get(key)
|
||||||
|
18
src/main.rs
18
src/main.rs
@ -6,8 +6,8 @@ mod area_capture;
|
|||||||
mod config_management;
|
mod config_management;
|
||||||
mod ffmpeg_interface;
|
mod ffmpeg_interface;
|
||||||
mod timer;
|
mod timer;
|
||||||
mod wayland_record;
|
|
||||||
mod utils;
|
mod utils;
|
||||||
|
mod wayland_record;
|
||||||
|
|
||||||
use ffmpeg_interface::Ffmpeg;
|
use ffmpeg_interface::Ffmpeg;
|
||||||
use gettextrs::{bindtextdomain, gettext, setlocale, textdomain, LocaleCategory};
|
use gettextrs::{bindtextdomain, gettext, setlocale, textdomain, LocaleCategory};
|
||||||
@ -15,19 +15,17 @@ use gtk::glib;
|
|||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::{
|
use gtk::{
|
||||||
AboutDialog, Application, Builder, Button, CheckButton, ComboBoxText, CssProvider, Entry,
|
AboutDialog, Application, Builder, Button, CheckButton, ComboBoxText, CssProvider, Entry,
|
||||||
FileChooserAction, FileChooserNative, Image, Label, SpinButton,
|
FileChooserAction, FileChooserNative, Image, Label, SpinButton, ToggleButton, Window,
|
||||||
ToggleButton, Window,
|
|
||||||
};
|
};
|
||||||
use utils::is_wayland;
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::ops::Add;
|
use std::ops::Add;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::process::{Command, Stdio};
|
use std::process::{Command, Stdio};
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use timer::{recording_delay, start_timer, stop_timer};
|
use timer::{recording_delay, start_timer, stop_timer};
|
||||||
|
use utils::is_wayland;
|
||||||
use wayland_record::WaylandRecorder;
|
use wayland_record::WaylandRecorder;
|
||||||
|
|
||||||
|
|
||||||
#[async_std::main]
|
#[async_std::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
// Create new application
|
// Create new application
|
||||||
@ -107,7 +105,7 @@ pub fn build_ui(application: &Application) {
|
|||||||
main_window.set_title(Some(&gettext("Blue Recorder")));
|
main_window.set_title(Some(&gettext("Blue Recorder")));
|
||||||
main_window.set_application(Some(application));
|
main_window.set_application(Some(application));
|
||||||
area_chooser_window.set_title(Some(&gettext("Area Chooser"))); // Title is hidden
|
area_chooser_window.set_title(Some(&gettext("Area Chooser"))); // Title is hidden
|
||||||
|
|
||||||
// disable interaction with main window
|
// disable interaction with main window
|
||||||
// main_window.set_can_focus(false);
|
// main_window.set_can_focus(false);
|
||||||
// main_window.set_can_target(false);
|
// main_window.set_can_target(false);
|
||||||
@ -146,12 +144,12 @@ pub fn build_ui(application: &Application) {
|
|||||||
// Get audio sources
|
// Get audio sources
|
||||||
let sources_descriptions: Vec<String> = {
|
let sources_descriptions: Vec<String> = {
|
||||||
let list_sources_child = Command::new("pactl")
|
let list_sources_child = Command::new("pactl")
|
||||||
.args(&["list", "sources"])
|
.args(["list", "sources"])
|
||||||
.stdout(Stdio::piped())
|
.stdout(Stdio::piped())
|
||||||
.spawn();
|
.spawn();
|
||||||
let sources_descriptions = String::from_utf8(if let Ok(..) = list_sources_child {
|
let sources_descriptions = String::from_utf8(if let Ok(..) = list_sources_child {
|
||||||
Command::new("grep")
|
Command::new("grep")
|
||||||
.args(&["-e", "device.description"])
|
.args(["-e", "device.description"])
|
||||||
.stdin(list_sources_child.unwrap().stdout.take().unwrap())
|
.stdin(list_sources_child.unwrap().stdout.take().unwrap())
|
||||||
.output()
|
.output()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
@ -284,7 +282,7 @@ pub fn build_ui(application: &Application) {
|
|||||||
|
|
||||||
area_grab_icon.set_from_file(Some(area_icon_path));
|
area_grab_icon.set_from_file(Some(area_icon_path));
|
||||||
screen_grab_icon.set_from_file(Some(screen_icon_path));
|
screen_grab_icon.set_from_file(Some(screen_icon_path));
|
||||||
window_grab_icon.set_from_file(Some(&window_icon_path));
|
window_grab_icon.set_from_file(Some(&window_icon_path));
|
||||||
}
|
}
|
||||||
// any theme
|
// any theme
|
||||||
_ => {
|
_ => {
|
||||||
@ -339,7 +337,7 @@ pub fn build_ui(application: &Application) {
|
|||||||
|
|
||||||
area_grab_icon.set_from_file(Some(area_icon_path));
|
area_grab_icon.set_from_file(Some(area_icon_path));
|
||||||
screen_grab_icon.set_from_file(Some(screen_icon_path));
|
screen_grab_icon.set_from_file(Some(screen_icon_path));
|
||||||
window_grab_icon.set_from_file(Some(&window_icon_path));
|
window_grab_icon.set_from_file(Some(&window_icon_path));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Labels
|
// Labels
|
||||||
|
Loading…
Reference in New Issue
Block a user