mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2026-02-14 08:58:17 +01:00
v4.3.3.42 - DEV Update NSPanelTs.ts
- Minor Fixes - Change pageId with Alias in Communication with HMI (cardMedia) - spotiffy Media-Player: Dynamic loading of the speaker list, playlist, tracklist, fix repeat, add seek, add elapsed/duration
This commit is contained in:
@@ -111,7 +111,9 @@ ReleaseNotes:
|
|||||||
- 05.02.2024 - v4.3.3.40 Fix: SqueezeboxRPC-Media-Player and add some Functions
|
- 05.02.2024 - v4.3.3.40 Fix: SqueezeboxRPC-Media-Player and add some Functions
|
||||||
- 06.02.2024 - v4.3.3.41 Fix: activeBrightness -> null
|
- 06.02.2024 - v4.3.3.41 Fix: activeBrightness -> null
|
||||||
- 06.02.2024 - v4.3.3.41 Fix: bHome -> corrected PageId
|
- 06.02.2024 - v4.3.3.41 Fix: bHome -> corrected PageId
|
||||||
- 07.02.2024 - v4.3.3.42 Minor Fixes
|
- 07.02.2024 - v4.3.3.42 Minor Fixes
|
||||||
|
- 09.02.2024 - v4.3.3.42 Change pageId with Alias in Communication with HMI (cardMedia)
|
||||||
|
- 09.02.2024 - v4.3.3.42 spotiffy Media-Player: Dynamic loading of the speaker list, playlist, tracklist, fix repeat, add seek, add elapsed/duration
|
||||||
|
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
@@ -5022,7 +5024,12 @@ async function createAutoMediaAlias (id: string, mediaDevice: string, adapterPla
|
|||||||
log('error function createAutoMediaAlias Adapter volumio: ' + err.message, 'warn');
|
log('error function createAutoMediaAlias Adapter volumio: ' + err.message, 'warn');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Add Volumio Datapoints > v4.3.3.42
|
||||||
|
if (existsObject(id + '.DURATION') == false) {
|
||||||
|
const dpPath: string = adapterPlayerInstance;
|
||||||
|
await createAliasAsync(id + '.DURATION', dpPath + 'playbackInfo.duration', true, <iobJS.StateCommon> {type: 'string', role: 'media.duration', name: 'DURATION'});
|
||||||
|
//await createAliasAsync(id + '.ELAPSED', dpPath + 'player.progress', true, <iobJS.StateCommon> {type: 'string', role: 'media.elapsed.text', name: 'ELAPSED'});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "squeezeboxrpc.0.":
|
case "squeezeboxrpc.0.":
|
||||||
@@ -5118,6 +5125,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
if (!page.items[0].id) throw new Error ('Missing page id for cardMedia!');
|
if (!page.items[0].id) throw new Error ('Missing page id for cardMedia!');
|
||||||
|
|
||||||
let id = page.items[0].id;
|
let id = page.items[0].id;
|
||||||
|
let tid = 0;
|
||||||
let out_msgs: NSPanel.Payload[] = [];
|
let out_msgs: NSPanel.Payload[] = [];
|
||||||
|
|
||||||
if (!page.items[0].adapterPlayerInstance!) throw new Error('page.items[0].adapterPlayerInstance is undefined!')
|
if (!page.items[0].adapterPlayerInstance!) throw new Error('page.items[0].adapterPlayerInstance is undefined!')
|
||||||
@@ -5152,6 +5160,9 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
subscribeMediaSubscriptionsSqueezeboxAdd(page.items[0].id);
|
subscribeMediaSubscriptionsSqueezeboxAdd(page.items[0].id);
|
||||||
} else if (v2Adapter == 'spotify-premium') {
|
} else if (v2Adapter == 'spotify-premium') {
|
||||||
subscribeMediaSubscriptionsSpotifyAdd(page.items[0].id);
|
subscribeMediaSubscriptionsSpotifyAdd(page.items[0].id);
|
||||||
|
setState(vInstance + 'getDevices', true);
|
||||||
|
setState(vInstance + 'getPlaybackInfo', true);
|
||||||
|
setState(vInstance + 'getPlaylists', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5404,6 +5415,8 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
if (shuffle == 'off' || shuffle == false || shuffle == 0 || shuffle == 'false') {
|
if (shuffle == 'off' || shuffle == false || shuffle == 0 || shuffle == 'false') {
|
||||||
shuffle_icon = Icons.GetIcon('shuffle-disabled'); //shuffle
|
shuffle_icon = Icons.GetIcon('shuffle-disabled'); //shuffle
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Todo: Refresh automatisieren und dafür wieder Shuffle nutzen
|
||||||
//if (v2Adapter == 'volumio') { shuffle_icon = Icons.GetIcon('shuffle-disabled'); } //Volumio: refresh playlist
|
//if (v2Adapter == 'volumio') { shuffle_icon = Icons.GetIcon('shuffle-disabled'); } //Volumio: refresh playlist
|
||||||
|
|
||||||
|
|
||||||
@@ -5435,7 +5448,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let currentSpeaker = findLocale('media','no_speaker_found');
|
let currentSpeaker: string = findLocale('media','no_speaker_found');
|
||||||
|
|
||||||
if (v2Adapter == 'alexa2') {
|
if (v2Adapter == 'alexa2') {
|
||||||
currentSpeaker = getState(([page.items[0].adapterPlayerInstance, 'Echo-Devices.', page.items[0].mediaDevice, '.Info.name'].join(''))).val;
|
currentSpeaker = getState(([page.items[0].adapterPlayerInstance, 'Echo-Devices.', page.items[0].mediaDevice, '.Info.name'].join(''))).val;
|
||||||
@@ -5465,6 +5478,11 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
speakerListArray.push(getState(playerId).val);
|
speakerListArray.push(getState(playerId).val);
|
||||||
page.items[0].speakerList = speakerListArray;
|
page.items[0].speakerList = speakerListArray;
|
||||||
});
|
});
|
||||||
|
} else if (v2Adapter == 'spotify-premium') {
|
||||||
|
// All possible Devices if page.items[0].speakerList empty
|
||||||
|
if (Debug) log(getState(page.items[0].adapterPlayerInstance + 'devices.availableDeviceListString').val);
|
||||||
|
speakerListArray = (getState(page.items[0].adapterPlayerInstance + 'devices.availableDeviceListString').val).split(';');
|
||||||
|
page.items[0].speakerList = speakerListArray;
|
||||||
} else {
|
} else {
|
||||||
let i_list = Array.prototype.slice.apply($('[state.id="' + page.items[0].adapterPlayerInstance + 'Echo-Devices.*.Info.name"]'));
|
let i_list = Array.prototype.slice.apply($('[state.id="' + page.items[0].adapterPlayerInstance + 'Echo-Devices.*.Info.name"]'));
|
||||||
for (let i_index in i_list) {
|
for (let i_index in i_list) {
|
||||||
@@ -5490,7 +5508,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
if (speakerListArray.length > 0) {
|
if (speakerListArray.length > 0) {
|
||||||
speakerListIconCol = rgb_dec565(HMIOn);
|
speakerListIconCol = rgb_dec565(HMIOn);
|
||||||
speakerListString = 'input_sel' + '~' +
|
speakerListString = 'input_sel' + '~' +
|
||||||
id + '?speakerlist' + '~' +
|
tid + '?speakerlist' + '~' +
|
||||||
Icons.GetIcon('speaker') + '~' +
|
Icons.GetIcon('speaker') + '~' +
|
||||||
speakerListIconCol + '~' +
|
speakerListIconCol + '~' +
|
||||||
findLocale('media','speaker') + '~' +
|
findLocale('media','speaker') + '~' +
|
||||||
@@ -5524,10 +5542,13 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/* Spotify: get all playlists if empty */
|
||||||
|
} else if (v2Adapter == 'spotify-premium') {
|
||||||
|
page.items[0].playList = (getState(page.items[0].adapterPlayerInstance + 'playlists.playlistListString').val).split(';');
|
||||||
}
|
}
|
||||||
playListIconCol = rgb_dec565(HMIOn);
|
playListIconCol = rgb_dec565(HMIOn);
|
||||||
playListString = 'input_sel' + '~' +
|
playListString = 'input_sel' + '~' +
|
||||||
id + '?playlist' + '~' +
|
tid + '?playlist' + '~' +
|
||||||
Icons.GetIcon('playlist-play') + '~' +
|
Icons.GetIcon('playlist-play') + '~' +
|
||||||
playListIconCol + '~' +
|
playListIconCol + '~' +
|
||||||
//'PlayL ' + page.heading + '~' +
|
//'PlayL ' + page.heading + '~' +
|
||||||
@@ -5537,9 +5558,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
|
|
||||||
//InSel Tracklist
|
//InSel Tracklist
|
||||||
globalTracklist = ''
|
globalTracklist = ''
|
||||||
if (v2Adapter == 'spotify-premium') {
|
|
||||||
globalTracklist = ' ' //Todo
|
|
||||||
}
|
|
||||||
let trackListString: string = '~~~~~~'
|
let trackListString: string = '~~~~~~'
|
||||||
let trackListIconCol = rgb_dec565(HMIOff);
|
let trackListIconCol = rgb_dec565(HMIOff);
|
||||||
if (v2Adapter == 'volumio') { /* Volumio: get queue */
|
if (v2Adapter == 'volumio') { /* Volumio: get queue */
|
||||||
@@ -5590,12 +5609,19 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
trackList = trackList + ']';
|
trackList = trackList + ']';
|
||||||
if (Debug) log(trackList, 'info');
|
if (Debug) log(trackList, 'info');
|
||||||
globalTracklist = trackList;
|
globalTracklist = trackList;
|
||||||
|
} else if (v2Adapter == 'spotify-premium') {
|
||||||
|
try {
|
||||||
|
let tempTrackList = JSON.parse(getState(page.items[0].adapterPlayerInstance + 'player.playlist.trackListArray').val);
|
||||||
|
globalTracklist = tempTrackList;
|
||||||
|
} catch {
|
||||||
|
log('Hello Mr. Developer something went wrong in tracklist!', 'warn')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (globalTracklist != null && globalTracklist.length != 0) {
|
if (globalTracklist != null && globalTracklist.length != 0) {
|
||||||
trackListIconCol = rgb_dec565(HMIOn);
|
trackListIconCol = rgb_dec565(HMIOn);
|
||||||
trackListString = 'input_sel' + '~' +
|
trackListString = 'input_sel' + '~' +
|
||||||
id + '?tracklist' + '~' +
|
tid + '?tracklist' + '~' +
|
||||||
Icons.GetIcon('animation-play-outline') + '~' +
|
Icons.GetIcon('animation-play-outline') + '~' +
|
||||||
trackListIconCol + '~' +
|
trackListIconCol + '~' +
|
||||||
findLocale('media','tracklist') + '~' +
|
findLocale('media','tracklist') + '~' +
|
||||||
@@ -5608,7 +5634,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
if (page.items[0].equalizerList != undefined) {
|
if (page.items[0].equalizerList != undefined) {
|
||||||
equalizerListIconCol = rgb_dec565(HMIOn);
|
equalizerListIconCol = rgb_dec565(HMIOn);
|
||||||
equalizerListString = 'input_sel' + '~' +
|
equalizerListString = 'input_sel' + '~' +
|
||||||
id + '?equalizer' + '~' +
|
tid + '?equalizer' + '~' +
|
||||||
Icons.GetIcon('equalizer-outline') + '~' +
|
Icons.GetIcon('equalizer-outline') + '~' +
|
||||||
equalizerListIconCol + '~' +
|
equalizerListIconCol + '~' +
|
||||||
findLocale('media','equalizer') + '~' +
|
findLocale('media','equalizer') + '~' +
|
||||||
@@ -5617,7 +5643,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
let equalizerListIconCol = rgb_dec565(HMIOn);
|
let equalizerListIconCol = rgb_dec565(HMIOn);
|
||||||
//equalizerListString is used for favariteList
|
//equalizerListString is used for favariteList
|
||||||
equalizerListString = 'input_sel' + '~' +
|
equalizerListString = 'input_sel' + '~' +
|
||||||
id + '?favorites' + '~' +
|
tid + '?favorites' + '~' +
|
||||||
Icons.GetIcon('playlist-star') + '~' +
|
Icons.GetIcon('playlist-star') + '~' +
|
||||||
equalizerListIconCol + '~' +
|
equalizerListIconCol + '~' +
|
||||||
findLocale('media','favorites') + '~' +
|
findLocale('media','favorites') + '~' +
|
||||||
@@ -5685,7 +5711,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
v2Adapter == 'volumio' ||
|
v2Adapter == 'volumio' ||
|
||||||
v2Adapter == 'squeezeboxrpc') {
|
v2Adapter == 'squeezeboxrpc') {
|
||||||
repeatButtonString = 'button' + '~' +
|
repeatButtonString = 'button' + '~' +
|
||||||
id + '?repeat' + '~' +
|
tid + '?repeat' + '~' +
|
||||||
repeatIcon + '~' +
|
repeatIcon + '~' +
|
||||||
repeatIconCol + '~' +
|
repeatIconCol + '~' +
|
||||||
'Repeat' + '~' +
|
'Repeat' + '~' +
|
||||||
@@ -5698,14 +5724,14 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
if (v2Adapter == 'sonos') {
|
if (v2Adapter == 'sonos') {
|
||||||
if (page.items[0].crossfade == undefined || page.items[0].crossfade == false) {
|
if (page.items[0].crossfade == undefined || page.items[0].crossfade == false) {
|
||||||
toolsString = 'input_sel' + '~' +
|
toolsString = 'input_sel' + '~' +
|
||||||
id + '?seek' + '~' +
|
tid + '?seek' + '~' +
|
||||||
media_icon + '~' +
|
media_icon + '~' +
|
||||||
toolsIconCol + '~' +
|
toolsIconCol + '~' +
|
||||||
findLocale('media','seek') + '~' +
|
findLocale('media','seek') + '~' +
|
||||||
'media5~'
|
'media5~'
|
||||||
} else {
|
} else {
|
||||||
toolsString = 'input_sel' + '~' +
|
toolsString = 'input_sel' + '~' +
|
||||||
id + '?crossfade' + '~' +
|
tid + '?crossfade' + '~' +
|
||||||
media_icon + '~' +
|
media_icon + '~' +
|
||||||
toolsIconCol + '~' +
|
toolsIconCol + '~' +
|
||||||
findLocale('media','crossfade') + '~' +
|
findLocale('media','crossfade') + '~' +
|
||||||
@@ -5714,7 +5740,16 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
} else if (v2Adapter == 'squeezeboxrpc') {
|
} else if (v2Adapter == 'squeezeboxrpc') {
|
||||||
if (page.items[0].crossfade == undefined || page.items[0].crossfade == false) {
|
if (page.items[0].crossfade == undefined || page.items[0].crossfade == false) {
|
||||||
toolsString = 'input_sel' + '~' +
|
toolsString = 'input_sel' + '~' +
|
||||||
id + '?seek' + '~' +
|
tid + '?seek' + '~' +
|
||||||
|
media_icon + '~' +
|
||||||
|
toolsIconCol + '~' +
|
||||||
|
findLocale('media','seek') + '~' +
|
||||||
|
'media5~'
|
||||||
|
}
|
||||||
|
} else if (v2Adapter == 'spotify-premium') {
|
||||||
|
if (page.items[0].crossfade == undefined || page.items[0].crossfade == false) {
|
||||||
|
toolsString = 'input_sel' + '~' +
|
||||||
|
tid + '?seek' + '~' +
|
||||||
media_icon + '~' +
|
media_icon + '~' +
|
||||||
toolsIconCol + '~' +
|
toolsIconCol + '~' +
|
||||||
findLocale('media','seek') + '~' +
|
findLocale('media','seek') + '~' +
|
||||||
@@ -5722,7 +5757,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
toolsString = 'button' + '~' +
|
toolsString = 'button' + '~' +
|
||||||
id + '' + '~' +
|
tid + '' + '~' +
|
||||||
media_icon + '~' +
|
media_icon + '~' +
|
||||||
toolsIconCol + '~' +
|
toolsIconCol + '~' +
|
||||||
findLocale('media','tools') + '~' +
|
findLocale('media','tools') + '~' +
|
||||||
@@ -5733,7 +5768,7 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
payload: 'entityUpd~' + //entityUpd
|
payload: 'entityUpd~' + //entityUpd
|
||||||
name + '~' + //heading
|
name + '~' + //heading
|
||||||
GetNavigationString(pageId) + '~' + //navigation
|
GetNavigationString(pageId) + '~' + //navigation
|
||||||
id + '~' + //internalNameEntiy
|
tid + '~' + //internalNameEntiy
|
||||||
title + '~' + //title
|
title + '~' + //title
|
||||||
rgb_dec565(colMediaTitle) + '~' + //titleColor
|
rgb_dec565(colMediaTitle) + '~' + //titleColor
|
||||||
author + '~' + //author
|
author + '~' + //author
|
||||||
@@ -5753,6 +5788,8 @@ function GenerateMediaPage(page: NSPanel.PageMedia): NSPanel.Payload[] {
|
|||||||
if (Debug) {
|
if (Debug) {
|
||||||
log('GenerateMediaPage payload: ' + JSON.stringify(out_msgs), 'info');
|
log('GenerateMediaPage payload: ' + JSON.stringify(out_msgs), 'info');
|
||||||
}
|
}
|
||||||
|
if (Debug) log(JSON.stringify(out_msgs).length);
|
||||||
|
if (Debug) log('GenerateMediaPage payload: ' + JSON.stringify(out_msgs), 'info');
|
||||||
return out_msgs
|
return out_msgs
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
log('error at function GenerateMediaPage: ' + err.message, 'warn');
|
log('error at function GenerateMediaPage: ' + err.message, 'warn');
|
||||||
@@ -6680,13 +6717,14 @@ function HandleButtonEvent(words: any): void {
|
|||||||
|
|
||||||
switch (deviceAdapterRP) {
|
switch (deviceAdapterRP) {
|
||||||
case 'spotify-premium':
|
case 'spotify-premium':
|
||||||
|
log(getState(id + '.REPEAT').val)
|
||||||
let stateSpotifyRepeat = getState(id + '.REPEAT').val
|
let stateSpotifyRepeat = getState(id + '.REPEAT').val
|
||||||
if (stateSpotifyRepeat == 'none') {
|
if (stateSpotifyRepeat == 'off') {
|
||||||
setIfExists(id + '.REPEAT', 'all');
|
setIfExists(id + '.REPEAT', 'context');
|
||||||
} else if (stateSpotifyRepeat == 'all') {
|
} else if (stateSpotifyRepeat == 'context') {
|
||||||
setIfExists(id + '.REPEAT', 'one');
|
setIfExists(id + '.REPEAT', 'track');
|
||||||
} else if (stateSpotifyRepeat == 'one') {
|
} else if (stateSpotifyRepeat == 'track') {
|
||||||
setIfExists(id + '.REPEAT', 'none');
|
setIfExists(id + '.REPEAT', 'off');
|
||||||
}
|
}
|
||||||
GeneratePage(activePage!);
|
GeneratePage(activePage!);
|
||||||
break;
|
break;
|
||||||
@@ -7134,8 +7172,9 @@ function HandleButtonEvent(words: any): void {
|
|||||||
|
|
||||||
switch (deviceAdapterTL) {
|
switch (deviceAdapterTL) {
|
||||||
case 'spotify-premium':
|
case 'spotify-premium':
|
||||||
let trackArray = (function () { try {return JSON.parse(getState(pageItemTL.adapterPlayerInstance + 'player.playlist.trackListArray').val);} catch(e) {return {};}})();
|
//let trackArray = (function () { try {return JSON.parse(getState(pageItemTL.adapterPlayerInstance + 'player.playlist.trackListArray').val);} catch(e) {return {};}})();
|
||||||
setState(adapterInstanceTL + 'player.trackId', getAttr(trackArray, words[4] + '.id'));
|
//setState(adapterInstanceTL + 'player.trackId', getAttr(trackArray, words[4] + '.id'));
|
||||||
|
setState(adapterInstanceTL + 'player.playlist.trackNo', parseInt(words[4]) + 1);
|
||||||
break;
|
break;
|
||||||
case 'sonos':
|
case 'sonos':
|
||||||
setState(adapterInstanceTL + 'root.' + pageItemTL.mediaDevice + '.current_track_number', parseInt(words[4]) + 1);
|
setState(adapterInstanceTL + 'root.' + pageItemTL.mediaDevice + '.current_track_number', parseInt(words[4]) + 1);
|
||||||
@@ -7213,6 +7252,7 @@ function HandleButtonEvent(words: any): void {
|
|||||||
let deviceAdapterSK: NSPanel.PlayerType = adapterSK[0] as NSPanel.PlayerType;
|
let deviceAdapterSK: NSPanel.PlayerType = adapterSK[0] as NSPanel.PlayerType;
|
||||||
switch (deviceAdapterSK) {
|
switch (deviceAdapterSK) {
|
||||||
case 'spotify-premium':
|
case 'spotify-premium':
|
||||||
|
setState(adapterInstanceSK + 'player.progressPercentage', parseInt(words[4]) * 10);
|
||||||
break;
|
break;
|
||||||
case 'squeezeboxrpc':
|
case 'squeezeboxrpc':
|
||||||
const vDuration: number = getState(adapterInstanceSK + 'Players.' + pageItemSeek.mediaDevice + '.Duration').val;
|
const vDuration: number = getState(adapterInstanceSK + 'Players.' + pageItemSeek.mediaDevice + '.Duration').val;
|
||||||
@@ -8310,6 +8350,11 @@ function GenerateDetailPage(type: NSPanel.PopupType, optional: NSPanel.mediaOpti
|
|||||||
actualState = Math.round(actualStateTemp / 10) * 10 + '%';
|
actualState = Math.round(actualStateTemp / 10) * 10 + '%';
|
||||||
optionalString = '0%?10%?20%?30%?40%?50%?60%?70%?80%?90%?100%';
|
optionalString = '0%?10%?20%?30%?40%?50%?60%?70%?80%?90%?100%';
|
||||||
}
|
}
|
||||||
|
if (vAdapter == 'spotify-premium') {
|
||||||
|
const actualStateTemp: number = getState(pageItem.adapterPlayerInstance + 'player.progressPercentage').val;
|
||||||
|
actualState = Math.round(actualStateTemp / 10) * 10 + '%';
|
||||||
|
optionalString = '0%?10%?20%?30%?40%?50%?60%?70%?80%?90%?100%';
|
||||||
|
}
|
||||||
if (vAdapter == 'squeezeboxrpc') {
|
if (vAdapter == 'squeezeboxrpc') {
|
||||||
const actualStateTime: number = parseInt(getState(pageItem.adapterPlayerInstance + 'Players.' + pageItem.mediaDevice + '.Time').val);
|
const actualStateTime: number = parseInt(getState(pageItem.adapterPlayerInstance + 'Players.' + pageItem.mediaDevice + '.Time').val);
|
||||||
const actualStateDuration: number = parseInt(getState(pageItem.adapterPlayerInstance + 'Players.' + pageItem.mediaDevice + '.Duration').val);
|
const actualStateDuration: number = parseInt(getState(pageItem.adapterPlayerInstance + 'Players.' + pageItem.mediaDevice + '.Duration').val);
|
||||||
@@ -8452,7 +8497,7 @@ function GenerateDetailPage(type: NSPanel.PopupType, optional: NSPanel.mediaOpti
|
|||||||
//Limit 900 characters, then memory overflow --> Shorten as much as possible
|
//Limit 900 characters, then memory overflow --> Shorten as much as possible
|
||||||
let temp_array: any[] = [];
|
let temp_array: any[] = [];
|
||||||
//let trackArray = (function () { try {return JSON.parse(getState(pageItem.adapterPlayerInstance + 'player.playlist.trackListArray').val);} catch(e) {return {};}})();
|
//let trackArray = (function () { try {return JSON.parse(getState(pageItem.adapterPlayerInstance + 'player.playlist.trackListArray').val);} catch(e) {return {};}})();
|
||||||
for (let track_index = 0; track_index < 45; track_index++) {
|
for (let track_index = 0; track_index < 48; track_index++) {
|
||||||
let temp_cut_array = getAttr(globalTracklist, track_index + '.title');
|
let temp_cut_array = getAttr(globalTracklist, track_index + '.title');
|
||||||
/* Volumio: @local/NAS no title -> name */
|
/* Volumio: @local/NAS no title -> name */
|
||||||
if (temp_cut_array == undefined) {
|
if (temp_cut_array == undefined) {
|
||||||
@@ -10183,7 +10228,6 @@ namespace NSPanel {
|
|||||||
navigate?: boolean,
|
navigate?: boolean,
|
||||||
colormode?: string,
|
colormode?: string,
|
||||||
colorScale?: IconScaleElement,
|
colorScale?: IconScaleElement,
|
||||||
//adapterPlayerInstance?: adapterPlayerInstanceType,
|
|
||||||
targetPage?: string,
|
targetPage?: string,
|
||||||
modeList?: string[],
|
modeList?: string[],
|
||||||
hidePassword?: boolean,
|
hidePassword?: boolean,
|
||||||
|
|||||||
Reference in New Issue
Block a user