webamp/js/actionCreators.js
2016-07-27 23:12:29 -07:00

51 lines
1.2 KiB
JavaScript

import MyFile from './my-file';
export function play(mediaPlayer) {
return (dispatch, getState) => {
if (getState().media.status === 'PLAYING') {
mediaPlayer.stop();
dispatch({type: 'MEDIA_IS_STOPPED'});
} else {
mediaPlayer.play();
dispatch({type: 'MEDIA_IS_PLAYING'});
}
};
}
export function pause(mediaPlayer) {
return (dispatch, getState) => {
const status = getState().media.status;
switch (status) {
case 'PAUSED':
mediaPlayer.play();
dispatch({type: 'MEDIA_IS_PLAYING'});
break;
case 'PLAYING':
mediaPlayer.pause();
dispatch({type: 'MEDIA_IS_PAUSED'});
break;
}
};
}
export function stop(mediaPlayer) {
return (dispatch) => {
mediaPlayer.stop();
dispatch({type: 'MEDIA_IS_STOPPED'});
};
}
export function close(mediaPlayer) {
return (dispatch) => {
mediaPlayer.stop();
dispatch({type: 'CLOSE_WINAMP'});
};
}
export function setSkinFromFilename(winamp, filename) {
const url = `https://cdn.rawgit.com/captbaritone/winamp-skins/master/v2/${filename}`;
const skinFile = new MyFile();
skinFile.setUrl(url);
winamp.setSkin(skinFile);
return {type: 'START_LOADING'};
}