send progress to airplay
This commit is contained in:
parent
7662ce64f0
commit
4c3ace12de
1 changed files with 62 additions and 38 deletions
|
@ -89,6 +89,18 @@ export default class RAOP {
|
||||||
|
|
||||||
private ondeviceup(name: any, host: any, port: any, addresses: any, text: any, airplay2: any = null) {
|
private ondeviceup(name: any, host: any, port: any, addresses: any, text: any, airplay2: any = null) {
|
||||||
// console.log(this.castDevices.findIndex((item: any) => {return (item.name == host.replace(".local","") && item.port == port )}))
|
// console.log(this.castDevices.findIndex((item: any) => {return (item.name == host.replace(".local","") && item.port == port )}))
|
||||||
|
|
||||||
|
let d = ""
|
||||||
|
let audiook = true
|
||||||
|
try{
|
||||||
|
d = text.filter((u: any) => String(u).startsWith('features='))
|
||||||
|
if(d.length == 0) d = text.filter((u: any) => String(u).startsWith('ft='))
|
||||||
|
let features_set = d.length > 0 ? d[0].substring(d[0].indexOf("=")+1).split(',') : []
|
||||||
|
let features = [... features_set.length > 0 ? parseInt(features_set[0]).toString(2).split('') : [], ... features_set.length > 1 ? parseInt(features_set[1]).toString(2).split('') : []]
|
||||||
|
if (features.length > 0){
|
||||||
|
audiook = (features[features.length - 1 - 9] == '1')
|
||||||
|
}} catch (_){}
|
||||||
|
if (audiook){
|
||||||
let shown_name = name;
|
let shown_name = name;
|
||||||
try {
|
try {
|
||||||
let model = text.filter((u: any) => String(u).startsWith("model="));
|
let model = text.filter((u: any) => String(u).startsWith("model="));
|
||||||
|
@ -126,7 +138,7 @@ export default class RAOP {
|
||||||
} else {
|
} else {
|
||||||
this._win.webContents.executeJavaScript(`console.log('deviceFound (added)','ip: ${host_name} name:${shown_name}')`).catch((err: any) => console.error(err));
|
this._win.webContents.executeJavaScript(`console.log('deviceFound (added)','ip: ${host_name} name:${shown_name}')`).catch((err: any) => console.error(err));
|
||||||
console.log("deviceFound (added)", host_name, shown_name);
|
console.log("deviceFound (added)", host_name, shown_name);
|
||||||
}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -229,7 +241,7 @@ export default class RAOP {
|
||||||
password: sepassword,
|
password: sepassword,
|
||||||
txt: txt,
|
txt: txt,
|
||||||
airplay2: airplay2dv,
|
airplay2: airplay2dv,
|
||||||
debug: true,
|
debug: false,
|
||||||
forceAlac: false,
|
forceAlac: false,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
@ -490,4 +502,16 @@ export default class RAOP {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
playbackTimeDidChange(attributes: any): void {
|
||||||
|
// console.log(attributes)
|
||||||
|
if (this.airtunes && this.devices.length > 0 && attributes?.currentPlaybackTime != null && attributes?.durationInMillis != null) {
|
||||||
|
for (let i in this.devices) {
|
||||||
|
this.airtunes.setProgress(this.devices[i].controller.key, Math.round(attributes.currentPlaybackTime ), Math.floor(attributes.durationInMillis/ 1000));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue