mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-21 17:18:52 +00:00
73 lines
1.6 KiB
JavaScript
73 lines
1.6 KiB
JavaScript
import {
|
|
IS_PLAYING,
|
|
IS_STOPPED,
|
|
PAUSE,
|
|
PLAY,
|
|
SEEK_TO_PERCENT_COMPLETE,
|
|
SET_BALANCE,
|
|
SET_VOLUME,
|
|
START_WORKING,
|
|
STOP,
|
|
STOP_WORKING,
|
|
TOGGLE_REPEAT,
|
|
TOGGLE_SHUFFLE,
|
|
UPDATE_TIME_ELAPSED,
|
|
SET_EQ_BAND
|
|
} from './actionTypes';
|
|
|
|
export default (media) => (
|
|
(store) => {
|
|
media.addEventListener('timeupdate', () => {
|
|
store.dispatch({type: UPDATE_TIME_ELAPSED, elapsed: media.timeElapsed()});
|
|
});
|
|
|
|
media.addEventListener('ended', () => {
|
|
store.dispatch({type: IS_STOPPED});
|
|
});
|
|
|
|
media.addEventListener('playing', () => {
|
|
store.dispatch({type: IS_PLAYING});
|
|
});
|
|
|
|
media.addEventListener('waiting', () => {
|
|
store.dispatch({type: START_WORKING});
|
|
});
|
|
|
|
media.addEventListener('stopWaiting', () => {
|
|
store.dispatch({type: STOP_WORKING});
|
|
});
|
|
|
|
return (next) => (action) => {
|
|
switch (action.type) {
|
|
case PLAY:
|
|
media.play();
|
|
break;
|
|
case PAUSE:
|
|
media.pause();
|
|
break;
|
|
case STOP:
|
|
media.stop();
|
|
break;
|
|
case SET_VOLUME:
|
|
media.setVolume(action.volume);
|
|
break;
|
|
case SET_BALANCE:
|
|
media.setBalance(action.balance);
|
|
break;
|
|
case TOGGLE_REPEAT:
|
|
media.toggleRepeat();
|
|
break;
|
|
case TOGGLE_SHUFFLE:
|
|
media.toggleShuffle();
|
|
break;
|
|
case SEEK_TO_PERCENT_COMPLETE:
|
|
media.seekToPercentComplete(action.percent);
|
|
break;
|
|
case SET_EQ_BAND:
|
|
media.setEqBand(action.band);
|
|
break;
|
|
}
|
|
return next(action);
|
|
};
|
|
}
|
|
);
|