diff --git a/src/main.rs b/src/main.rs index ecef14d8..ab446b7e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -185,18 +185,19 @@ struct Main { impl Main { fn new(handle: Handle, config: Config, + cache: Option, backend: fn(Option) -> Box, device: Option, mixer: fn() -> Box) -> Main { Main { handle: handle.clone(), + cache: cache, config: config, backend: backend, device: device, mixer: mixer, - cache: None, connect: Box::new(futures::future::empty()), discovery: None, spirc: None, @@ -215,6 +216,7 @@ impl Main { fn credentials(&mut self, credentials: Credentials) { let config = self.config.clone(); let handle = self.handle.clone(); + let connection = Session::connect(config, credentials, self.cache.clone(), handle); self.connect = connection; @@ -224,10 +226,6 @@ impl Main { self.handle.spawn(task); } } - - fn cache(&mut self, cache: Cache) { - self.cache = Some(cache); - } } impl Future for Main { @@ -302,16 +300,14 @@ fn main() { let args: Vec = std::env::args().collect(); let Setup { backend, config, device, cache, enable_discovery, credentials, mixer } = setup(&args); - let mut task = Main::new(handle, config.clone(), backend, device, mixer); + let mut task = Main::new(handle, config.clone(), cache, backend, device, mixer); if enable_discovery { task.discovery(); } if let Some(credentials) = credentials { task.credentials(credentials); } - if let Some(cache) = cache { - task.cache(cache); - } core.run(task).unwrap() } +