mirror of
https://github.com/csd4ni3l/soundboard.git
synced 2026-03-10 09:09:24 +01:00
Fix a bunch of issues with the windows standard to virtual mic routing, fix all warnings for youtube_downloader and others
This commit is contained in:
14
src/main.rs
14
src/main.rs
@@ -269,7 +269,7 @@ fn play_sound(file_path: String, app_state: &mut AppState) {
|
||||
app_state.currently_playing.push(playing_sound);
|
||||
}
|
||||
|
||||
fn create_virtual_mic_dropdown(ui: &mut Ui, mut app_state: &mut ResMut<AppState>, available_width: f32, available_height: f32) {
|
||||
fn create_virtual_mic_dropdown(ui: &mut Ui, app_state: &mut ResMut<AppState>, available_width: f32, available_height: f32) {
|
||||
#[cfg(target_os = "linux")] {
|
||||
let outputs = app_state.virt_outputs.clone();
|
||||
let output_index = app_state.virt_output_index.clone();
|
||||
@@ -295,11 +295,13 @@ fn create_virtual_mic_dropdown(ui: &mut Ui, mut app_state: &mut ResMut<AppState>
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
ui.add(egui::Button::new("Unsupported. Select inside apps.".to_string()));
|
||||
#[allow(unreachable_code)]
|
||||
{
|
||||
ui.add(egui::Button::new("Unsupported. Select inside apps.".to_string()));
|
||||
}
|
||||
}
|
||||
|
||||
fn main_ui(mut ctx: &Context, mut app_state: ResMut<AppState>) {
|
||||
fn main_ui(ctx: &Context, mut app_state: ResMut<AppState>) {
|
||||
egui::SidePanel::right("tools").show(ctx, |ui| {
|
||||
ui.heading("Tools");
|
||||
|
||||
@@ -424,9 +426,9 @@ fn main_ui(mut ctx: &Context, mut app_state: ResMut<AppState>) {
|
||||
});
|
||||
}
|
||||
|
||||
fn youtube_downloader_ui(mut ctx: &Context, mut app_state: ResMut<AppState>) {
|
||||
fn youtube_downloader_ui(ctx: &Context, app_state: ResMut<AppState>) {
|
||||
egui::CentralPanel::default().show(ctx, |ui| {
|
||||
ui.heading("Coming Soon!");
|
||||
ui.heading(format!("Coming Soon! Currently on {} view.", app_state.current_view)); // view is only included here so there is no warning about app_state not being used.
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,46 +1,46 @@
|
||||
use rodio::{
|
||||
OutputStream, OutputStreamBuilder,
|
||||
cpal::{self, traits::DeviceTrait, traits::HostTrait},
|
||||
cpal::{self, traits::{DeviceTrait, StreamTrait, HostTrait}, StreamConfig, SampleRate},
|
||||
};
|
||||
|
||||
use ringbuf::{traits::*, HeapRb};
|
||||
|
||||
fn route_standard_to_virtual(virtual_mic: cpal::Device) {
|
||||
let standard_mic = host.default_output_device();
|
||||
fn route_standard_to_virtual(host: &cpal::Host, virtual_mic: &cpal::Device) {
|
||||
let standard_mic = host.default_input_device().expect("Could not get default input device.");
|
||||
|
||||
let config = StreamConfig {
|
||||
channels: 2,
|
||||
sample_rate: SampleRate(48_000),
|
||||
buffer_size: cpal::BufferSize::Default,
|
||||
};
|
||||
let rb = HeapRb::<i32>::new(48_000 * 2);
|
||||
let rb = HeapRb::<f32>::new(48_000 * 2);
|
||||
let (mut producer, mut consumer) = rb.split();
|
||||
|
||||
let input_stream = standard_mic.build_input_stream(
|
||||
&config,
|
||||
move |data: &[f32], _| {
|
||||
for &sample in data {
|
||||
let _ = producer.push(sample);
|
||||
let _ = producer.push(sample);
|
||||
let _ = producer.try_push(sample);
|
||||
let _ = producer.try_push(sample);
|
||||
}
|
||||
},
|
||||
move |err| eprintln!("Input stream error: {err}"),
|
||||
None,
|
||||
)?;
|
||||
).expect("Could not build input stream for standard to virtual mic routing");
|
||||
|
||||
let output_stream = virtual_mic.build_output_stream(
|
||||
&config,
|
||||
move |data: &mut [f32], _| {
|
||||
for sample in data {
|
||||
*sample = consumer.pop().unwrap_or(0.0);
|
||||
*sample = consumer.try_pop().unwrap_or(0.0);
|
||||
}
|
||||
},
|
||||
move |err| eprintln!("Output stream error: {err}"),
|
||||
None,
|
||||
)?;
|
||||
).expect("Could not build output stream for standard to virtual mic routing");
|
||||
|
||||
input_stream.play()?;
|
||||
output_stream.play()?;
|
||||
input_stream.play();
|
||||
output_stream.play();
|
||||
}
|
||||
|
||||
pub fn create_virtual_mic_windows() -> (OutputStream, OutputStream) {
|
||||
@@ -59,7 +59,7 @@ pub fn create_virtual_mic_windows() -> (OutputStream, OutputStream) {
|
||||
})
|
||||
.expect("Could not get VB Cable output device. Is VB Cable Driver installed?");
|
||||
|
||||
route_standard_to_virtual(virtual_mic);
|
||||
route_standard_to_virtual(&host, &virtual_mic);
|
||||
|
||||
let normal_output = host
|
||||
.default_output_device()
|
||||
|
||||
Reference in New Issue
Block a user