Revert "Serialize media state, and apply equalizer state to on deserialize"

This reverts commit 94e105b104.
This commit is contained in:
Jordan Eldredge 2018-10-01 12:50:21 -07:00 committed by GitHub
parent 66002cb8f0
commit 86c2c663bb
4 changed files with 10 additions and 68 deletions

View file

@ -17,19 +17,11 @@ import {
SET_EQ_ON,
PLAY_TRACK,
BUFFER_TRACK,
CHANNEL_COUNT_CHANGED,
LOAD_SERIALIZED_STATE
CHANNEL_COUNT_CHANGED
} from "./actionTypes";
import { next as nextTrack } from "./actionCreators";
import * as Selectors from "./selectors";
import {
MiddlewareStore,
Dispatchable,
Action,
Dispatch,
Slider
} from "./types";
import { objectForEach } from "./utils";
import { getCurrentTrackId } from "./selectors";
import { MiddlewareStore, Dispatchable, Action, Dispatch } from "./types";
export default (media: Media) => (store: MiddlewareStore) => {
const {
@ -66,7 +58,7 @@ export default (media: Media) => (store: MiddlewareStore) => {
});
media.on("fileLoaded", () => {
const id = Selectors.getCurrentTrackId(store.getState());
const id = getCurrentTrackId(store.getState());
if (id == null) {
// Attempted to set the metadata for a track that was already removed.
// Really, the media should have been stopped when the track was removed.
@ -90,8 +82,7 @@ export default (media: Media) => (store: MiddlewareStore) => {
});
return (next: Dispatch) => (action: Action) => {
const returnValue = next(action);
const state = store.getState();
// TODO: Consider doing this after the action, and using the state as the source of truth.
switch (action.type) {
case PLAY:
media.play();
@ -103,10 +94,10 @@ export default (media: Media) => (store: MiddlewareStore) => {
media.stop();
break;
case SET_VOLUME:
media.setVolume(Selectors.getVolume(state));
media.setVolume(action.volume);
break;
case SET_BALANCE:
media.setBalance(Selectors.getBalance(state));
media.setBalance(action.balance);
break;
case SEEK_TO_PERCENT_COMPLETE:
media.seekToPercentComplete(action.percent);
@ -138,27 +129,7 @@ export default (media: Media) => (store: MiddlewareStore) => {
case SET_EQ_ON:
media.enableEq();
break;
case LOAD_SERIALIZED_STATE: {
// Set ALL THE THINGS!
if (Selectors.getEqualizerEnabled(state)) {
media.enableEq();
} else {
media.disableEq();
}
media.setVolume(Selectors.getVolume(state));
media.setBalance(Selectors.getBalance(state));
objectForEach(state.equalizer.sliders, (value, slider) => {
if (slider === "preamp") {
media.setPreamp(value);
} else {
// @ts-ignore I don't know how to teach TypeScript about objects
// that use Slider as keys
media.setEqBand(slider, value);
}
});
break;
}
}
return returnValue;
return next(action);
};
};

View file

@ -13,8 +13,7 @@ import {
TOGGLE_TIME_MODE,
UPDATE_TIME_ELAPSED,
ADD_TRACK_FROM_URL,
CHANNEL_COUNT_CHANGED,
LOAD_SERIALIZED_STATE
CHANNEL_COUNT_CHANGED
} from "../actionTypes";
import { TIME_MODE, MEDIA_STATUS } from "../constants";
@ -32,13 +31,6 @@ export interface MediaState {
status: string | null; // TODO: Convert this to an enum
}
export interface MediaSerializedStateV1 {
volume: number;
balance: number;
shuffle: boolean;
repeat: boolean;
}
const defaultState = {
timeMode: TIME_MODE.ELAPSED,
timeElapsed: 0,
@ -106,16 +98,9 @@ const media = (
return { ...state, repeat: !state.repeat };
case TOGGLE_SHUFFLE:
return { ...state, shuffle: !state.shuffle };
case LOAD_SERIALIZED_STATE:
return { ...state, ...action.serializedState.media };
default:
return state;
}
};
export function getSerializedState(state: MediaState): MediaSerializedStateV1 {
const { volume, balance, shuffle, repeat } = state;
return { volume, balance, shuffle, repeat };
}
export default media;

View file

@ -28,7 +28,6 @@ import { createPlaylistURL } from "./playlistHtml";
import * as fromPlaylist from "./reducers/playlist";
import * as fromDisplay from "./reducers/display";
import * as fromEqualizer from "./reducers/equalizer";
import * as fromMedia from "./reducers/media";
import { generateGraph } from "./resizeUtils";
export const getSliders = (state: AppState) => state.equalizer.sliders;
@ -409,19 +408,7 @@ export const getChannels = (state: AppState) => state.media.channels;
export function getSerlializedState(state: AppState): SerializedStateV1 {
return {
version: 1,
media: fromMedia.getSerializedState(state.media),
equalizer: fromEqualizer.getSerializedState(state.equalizer),
display: fromDisplay.getSerializedState(state.display)
};
}
export function getVolume(state: AppState): number {
return state.media.volume;
}
export function getBalance(state: AppState): number {
return state.media.balance;
}
export function getEqualizerEnabled(state: AppState): boolean {
return state.equalizer.on;
}

View file

@ -1,7 +1,7 @@
import { PlaylistState } from "./reducers/playlist";
import { SettingsState } from "./reducers/settings";
import { UserInputState } from "./reducers/userInput";
import { MediaState, MediaSerializedStateV1 } from "./reducers/media";
import { MediaState } from "./reducers/media";
import { DisplayState, DisplaySerializedStateV1 } from "./reducers/display";
import { WindowState } from "./reducers/windows";
import {
@ -505,7 +505,6 @@ export interface SerializedStateV1 {
windows: WindowSerializedState;
settings: SettingsSerializedState;
*/
media: MediaSerializedStateV1;
display: DisplaySerializedStateV1;
equalizer: EqualizerSerializedStateV1;
}