From 147a8bcb9e3206062a0c02deeee64d3b44f244cf Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Sat, 14 Nov 2020 21:33:38 +1300 Subject: [PATCH] Adding stream_title_changed listener, fixes #627 --- src/js/services/core/reducer.js | 16 ++++++++++------ src/js/services/mopidy/actions.js | 7 +++++++ src/js/services/mopidy/middleware.js | 23 +++++++++++++++++++++++ 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/js/services/core/reducer.js b/src/js/services/core/reducer.js index 003829e6..c8af5957 100755 --- a/src/js/services/core/reducer.js +++ b/src/js/services/core/reducer.js @@ -1,6 +1,5 @@ -import { removeDuplicates, arrayOf } from '../../util/arrays'; -import { formatTracks } from '../../util/format'; +import { arrayOf } from '../../util/arrays'; export default function reducer(core = {}, action) { switch (action.type) { @@ -10,10 +9,6 @@ export default function reducer(core = {}, action) { case 'CACHEBUST_HTTP_STREAM': return { ...core, http_streaming_cachebuster: new Date().getTime() }; - /** - * Current track and tracklist - * */ - case 'CURRENT_TRACK_LOADED': return { ...core, @@ -21,6 +16,15 @@ export default function reducer(core = {}, action) { current_track_uri: action.uri, }; + case 'MOPIDY_STREAM_TITLE_CHANGED': + return { + ...core, + current_track: { + ...core.current_track, + name: action.title, + }, + }; + case 'CLEAR_CURRENT_TRACK': return { ...core, diff --git a/src/js/services/mopidy/actions.js b/src/js/services/mopidy/actions.js index df64b5c0..63f482e2 100755 --- a/src/js/services/mopidy/actions.js +++ b/src/js/services/mopidy/actions.js @@ -277,6 +277,13 @@ export function currentTrackLoaded(tl_track) { }; } +export function streamTitleChanged(title) { + return { + type: 'MOPIDY_STREAM_TITLE_CHANGED', + title, + }; +} + export function getNextTrack() { return { type: 'MOPIDY_GET_NEXT_TRACK', diff --git a/src/js/services/mopidy/middleware.js b/src/js/services/mopidy/middleware.js index 16c96cbc..53348c85 100755 --- a/src/js/services/mopidy/middleware.js +++ b/src/js/services/mopidy/middleware.js @@ -148,6 +148,10 @@ const MopidyMiddleware = (function () { ); break; + case 'event:streamTitleChanged': + store.dispatch(mopidyActions.streamTitleChanged(data.title)); + break; + case 'event:volumeChanged': store.dispatch({ type: 'MOPIDY_VOLUME', volume: data.volume }); break; @@ -1474,6 +1478,25 @@ const MopidyMiddleware = (function () { break; } + case 'MOPIDY_STREAM_TITLE_CHANGED': { + const { + core: { + current_track, + }, + } = store.getState(); + const track = { + ...current_track, + name: action.title, + }; + + store.dispatch({ + type: 'CURRENT_TRACK_LOADED', + track, + uri: current_track.uri, + }); + break; + } + case 'MOPIDY_GET_NEXT_TRACK': request(store, 'tracklist.getNextTlid') .then(