aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src
diff options
context:
space:
mode:
Diffstat (limited to 'mumd/src')
-rw-r--r--mumd/src/error.rs9
-rw-r--r--mumd/src/state.rs9
2 files changed, 16 insertions, 2 deletions
diff --git a/mumd/src/error.rs b/mumd/src/error.rs
index a171f1f..84c1958 100644
--- a/mumd/src/error.rs
+++ b/mumd/src/error.rs
@@ -1,3 +1,4 @@
+use mumlib::error::ConfigError;
use std::fmt;
pub enum AudioStream {
@@ -36,6 +37,7 @@ impl fmt::Display for AudioError {
pub enum StateError {
AudioError(AudioError),
+ ConfigError(ConfigError),
}
impl From<AudioError> for StateError {
@@ -44,10 +46,17 @@ impl From<AudioError> for StateError {
}
}
+impl From<ConfigError> for StateError {
+ fn from(e: ConfigError) -> Self {
+ StateError::ConfigError(e)
+ }
+}
+
impl fmt::Display for StateError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
StateError::AudioError(e) => write!(f, "Audio error: {}", e),
+ StateError::ConfigError(e) => write!(f, "Config error: {}", e),
}
}
}
diff --git a/mumd/src/state.rs b/mumd/src/state.rs
index 9202e9f..b52b330 100644
--- a/mumd/src/state.rs
+++ b/mumd/src/state.rs
@@ -64,7 +64,7 @@ pub struct State {
impl State {
pub fn new() -> Result<Self, StateError> {
- let config = mumlib::config::read_default_cfg();
+ let config = mumlib::config::read_default_cfg()?;
let phase_watcher = watch::channel(StatePhase::Disconnected);
let audio = Audio::new(
config.audio.input_volume.unwrap_or(1.0),
@@ -574,7 +574,12 @@ impl State {
}
pub fn reload_config(&mut self) {
- self.config = mumlib::config::read_default_cfg();
+ match mumlib::config::read_default_cfg() {
+ Ok(config) => {
+ self.config = config;
+ }
+ Err(e) => error!("Couldn't read config: {}", e),
+ }
if let Some(input_volume) = self.config.audio.input_volume {
self.audio.set_input_volume(input_volume);
}