Refactored how we deal with blocking code and added AudioSetup

This commit is contained in:
2023-01-03 05:26:00 +01:00
parent 06e511758b
commit cfd10a7daf
13 changed files with 464 additions and 118 deletions

View File

@@ -4,7 +4,7 @@ use tracing::{debug, trace};
use rumqttc::AsyncClient;
use serde::Deserialize;
use crate::devices::{DeviceBox, IkeaOutlet, WakeOnLAN};
use crate::devices::{DeviceBox, IkeaOutlet, WakeOnLAN, AudioSetup};
// @TODO Configure more defaults
@@ -83,6 +83,11 @@ pub enum Device {
info: InfoConfig,
mqtt: MqttDeviceConfig,
mac_address: String,
},
AudioSetup {
mqtt: MqttDeviceConfig,
mixer: [u8; 4],
speakers: [u8; 4],
}
}
@@ -110,6 +115,10 @@ impl Device {
trace!(id = identifier, "WakeOnLan [{} in {:?}]", info.name, info.room);
Box::new(WakeOnLAN::new(identifier, info, mqtt, mac_address, client))
},
Device::AudioSetup { mqtt, mixer, speakers } => {
trace!(id = identifier, "AudioSetup [{}]", identifier);
Box::new(AudioSetup::new(identifier, mqtt, mixer, speakers, client))
},
}
}
}