feat: Add basic event handling for audio

This commit is contained in:
Fabio Lenherr / DashieTM 2023-11-15 19:32:16 +01:00
parent 58fc09fd1d
commit 8ef97ac0d9
5 changed files with 458 additions and 40 deletions

View file

@ -5,8 +5,10 @@ use std::sync::Arc;
use crate::components::base::settingBox::SettingBox;
use crate::components::base::utils::Listeners;
use crate::components::bluetooth::bluetoothBox::BluetoothBox;
use crate::components::input::sourceBox::{SourceBox, populate_outputstreams, populate_sources};
use crate::components::output::sinkBox::{SinkBox, populate_inputstreams, populate_sinks};
use crate::components::input::sourceBox::{populate_outputstreams, populate_sources, SourceBox};
use crate::components::output::sinkBox::{
populate_inputstreams, populate_sinks, start_output_box_listener, SinkBox,
};
use crate::components::wifi::wifiBox::{scanForWifi, show_stored_connections, WifiBox};
use gtk::prelude::WidgetExt;
use gtk::{FlowBox, Frame, Label};
@ -64,7 +66,6 @@ pub const HANDLE_AUDIO_CLICK: fn(Arc<Listeners>, FlowBox) =
listeners.bluetooth_listener.store(false, Ordering::SeqCst);
listeners.pulse_listener.store(true, Ordering::SeqCst);
let audioOutput = Arc::new(SinkBox::new());
populate_inputstreams(listeners.clone(), audioOutput.clone());
populate_sinks(audioOutput.clone());
let audioFrame = wrapInFrame(SettingBox::new(&*audioOutput));
let audioInput = Arc::new(SourceBox::new());
@ -83,8 +84,8 @@ pub const HANDLE_VOLUME_CLICK: fn(Arc<Listeners>, FlowBox) =
listeners.bluetooth_listener.store(false, Ordering::SeqCst);
listeners.pulse_listener.store(false, Ordering::SeqCst);
let audioOutput = Arc::new(SinkBox::new());
populate_inputstreams(listeners.clone(), audioOutput.clone());
populate_sinks(audioOutput.clone());
start_output_box_listener(listeners.clone(), audioOutput.clone());
let audioFrame = wrapInFrame(SettingBox::new(&*audioOutput));
resetMain.remove_all();
resetMain.insert(&audioFrame, -1);