|
@@ -81,6 +81,7 @@ struct Setup {
|
|
|
connect_config: ConnectConfig,
|
|
|
credentials: Option<Credentials>,
|
|
|
enable_discovery: bool,
|
|
|
+ zeroconf_port: u16,
|
|
|
}
|
|
|
|
|
|
fn setup(args: &[String]) -> Setup {
|
|
@@ -99,7 +100,8 @@ fn setup(args: &[String]) -> Setup {
|
|
|
.optopt("", "backend", "Audio backend to use. Use '?' to list options", "BACKEND")
|
|
|
.optopt("", "device", "Audio device to use. Use '?' to list options", "DEVICE")
|
|
|
.optopt("", "mixer", "Mixer to use", "MIXER")
|
|
|
- .optopt("", "initial-volume", "Initial volume in %, once connected (must be from 0 to 100)", "VOLUME");
|
|
|
+ .optopt("", "initial-volume", "Initial volume in %, once connected (must be from 0 to 100)", "VOLUME")
|
|
|
+ .optopt("z", "zeroconf-port", "The port the internal server advertised over zeroconf uses.", "ZEROCONF_PORT");
|
|
|
|
|
|
let matches = match opts.parse(&args[1..]) {
|
|
|
Ok(m) => m,
|
|
@@ -160,6 +162,17 @@ fn setup(args: &[String]) -> Setup {
|
|
|
}
|
|
|
debug!("Volume \"{}\" !", initial_volume);
|
|
|
|
|
|
+ let zeroconf_port: u16;
|
|
|
+ if matches.opt_present("zeroconf-port") && matches.opt_str("zeroconf-port").unwrap().parse::<u16>().is_ok() {
|
|
|
+ let z = matches.opt_str("zeroconf-port").unwrap().parse::<u16>().unwrap();
|
|
|
+ match z {
|
|
|
+ z if z >= 1024 => { zeroconf_port = z }
|
|
|
+ _ => { zeroconf_port = 0 }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ zeroconf_port = 0
|
|
|
+ }
|
|
|
+
|
|
|
let name = matches.opt_str("name").unwrap();
|
|
|
let use_audio_cache = !matches.opt_present("disable-audio-cache");
|
|
|
|
|
@@ -221,6 +234,7 @@ fn setup(args: &[String]) -> Setup {
|
|
|
credentials: credentials,
|
|
|
device: device,
|
|
|
enable_discovery: enable_discovery,
|
|
|
+ zeroconf_port: zeroconf_port,
|
|
|
mixer: mixer,
|
|
|
}
|
|
|
}
|
|
@@ -269,7 +283,7 @@ impl Main {
|
|
|
let config = task.connect_config.clone();
|
|
|
let device_id = task.session_config.device_id.clone();
|
|
|
|
|
|
- task.discovery = Some(discovery(&handle, config, device_id).unwrap());
|
|
|
+ task.discovery = Some(discovery(&handle, config, device_id, setup.zeroconf_port).unwrap());
|
|
|
}
|
|
|
|
|
|
if let Some(credentials) = setup.credentials {
|