diff --git a/js/actionCreators.js b/js/actionCreators.js index fb636ec9..a771c452 100644 --- a/js/actionCreators.js +++ b/js/actionCreators.js @@ -134,11 +134,10 @@ export function setEqBand(band, value) { }; } -function _setEqTo(mediaPlayer, value) { +function _setEqTo(value) { return (dispatch) => { Object.keys(BANDS).forEach((key) => { const band = BANDS[key]; - mediaPlayer.setEqBand(band, value); dispatch({ type: SET_BAND_VALUE, value, @@ -148,23 +147,22 @@ function _setEqTo(mediaPlayer, value) { }; } -export function setEqToMax(mediaPlayer) { - return _setEqTo(mediaPlayer, 100); +export function setEqToMax() { + return _setEqTo(100); } -export function setEqToMid(mediaPlayer) { - return _setEqTo(mediaPlayer, 50); +export function setEqToMid() { + return _setEqTo(50); } -export function setEqToMin(mediaPlayer) { - return _setEqTo(mediaPlayer, 0); +export function setEqToMin() { + return _setEqTo(0); } -export function setPreamp(mediaPlayer, value) { - mediaPlayer.setPreamp(value); - return (dispatch) => dispatch({ +export function setPreamp(value) { + return { type: SET_BAND_VALUE, band: 'preamp', value - }); + }; } diff --git a/js/components/EqualizerWindow.jsx b/js/components/EqualizerWindow.jsx index c76dbfdb..ea0f0310 100644 --- a/js/components/EqualizerWindow.jsx +++ b/js/components/EqualizerWindow.jsx @@ -24,73 +24,59 @@ import '../../css/equalizer-window.css'; const bandClassName = (band) => `band-${band}`; -class EqualizerWindow extends React.Component { - constructor(props) { - super(props); - this.setHertzValue = this.setHertzValue.bind(this); - } +const EqualizerWindow = (props) => { + const {doubled} = props.display; - setHertzValue(hertz) { - return (e) => { - this.props.dispatch( - setEqBand(hertz, e.target.value) - ); - }; - } - - render() { - const {doubled} = this.props.display; - - const className = classnames({ - window: true, - selected: this.props.windows.focused === WINDOWS.EQUALIZER, - closed: !this.props.windows.equalizer, - draggable: true, - doubled - }); - return ( -
-
- - - -
+ const className = classnames({ + window: true, + selected: props.windows.focused === WINDOWS.EQUALIZER, + closed: !props.windows.equalizer, + draggable: true, + doubled + }); + return ( +
+
+ + + +
+ +
+
+
+ {BANDS.map((hertz) => ( -
-
-
- {BANDS.map((hertz) => ( - - ))} -
- ); - } -} + ))} +
+ ); +}; const mapDispatchToProps = (dispatch) => ({ focusWindow: () => dispatch({type: SET_FOCUSED_WINDOW, window: WINDOWS.EQUALIZER}), - setPreampValue: (mediaPlayer) => (e) => dispatch(setPreamp(mediaPlayer, e.target.value)), - setEqToMin: (mediaPlayer) => () => dispatch(setEqToMin(mediaPlayer)), - setEqToMid: (mediaPlayer) => () => dispatch(setEqToMid(mediaPlayer)), - setEqToMax: (mediaPlayer) => () => dispatch(setEqToMax(mediaPlayer)), + setPreampValue: (e) => dispatch(setPreamp(e.target.value)), + setEqToMin: () => dispatch(setEqToMin()), + setEqToMid: () => dispatch(setEqToMid()), + setEqToMax: () => dispatch(setEqToMax()), + setHertzValue: (hertz) => (e) => dispatch(setEqBand(hertz, e.target.value)), dispatch }); diff --git a/js/index.js b/js/index.js index 230a8bd9..2768ec69 100644 --- a/js/index.js +++ b/js/index.js @@ -32,7 +32,7 @@ if (new Browser(window).isCompatible) { { playlist ? : '' } - { equalizer ? : '' } + { equalizer ? : '' }
, diff --git a/js/mediaMiddleware.js b/js/mediaMiddleware.js index df1c9cfe..102f8f57 100644 --- a/js/mediaMiddleware.js +++ b/js/mediaMiddleware.js @@ -5,6 +5,7 @@ import { PAUSE, PLAY, SEEK_TO_PERCENT_COMPLETE, + SET_BAND_VALUE, SET_BALANCE, SET_EQ_BAND, SET_MEDIA, @@ -82,6 +83,13 @@ export default (media) => ( case LOAD_AUDIO_URL: media.loadFromUrl(action.url, action.name); break; + case SET_BAND_VALUE: + if (action.band === 'preamp') { + media.setPreamp(action.value); + } else { + media.setEqBand(action.band, action.value); + } + break; } return next(action); }; diff --git a/js/winamp.js b/js/winamp.js index 83a88f6f..d828fca7 100755 --- a/js/winamp.js +++ b/js/winamp.js @@ -24,7 +24,7 @@ module.exports = { this.dispatch(setVolume(options.volume)); this.dispatch(setBalance(options.balance)); - this.dispatch(setPreamp(this.media, 50)); + this.dispatch(setPreamp(50)); this.dispatch(loadMediaFromUrl(options.mediaFile.url, options.mediaFile.name)); this.dispatch(setSkinFromUrl(options.skinUrl)); return this;