Files
Iris/src/js/services/mopidy/actions.js

221 lines
3.8 KiB
JavaScript
Raw Normal View History

import * as helpers from '../../helpers'
export function setConfig( config ){
return {
type: 'MOPIDY_SET_CONFIG',
config: config
}
}
export function connect(){
return {
type: 'MOPIDY_CONNECT'
}
}
export function disconnect(){
2016-10-18 08:56:53 +13:00
return {
type: 'MOPIDY_DISCONNECT'
2016-10-18 08:56:53 +13:00
}
}
export function instruct( call, value ){
return {
type: 'MOPIDY_INSTRUCT',
call: call,
value: value
}
}
export function debug( call, value ){
return {
type: 'MOPIDY_DEBUG',
call: call,
value: value
}
}
/**
* Playback-oriented actions
**/
export function changeTrack( tlid ){
return {
type: 'MOPIDY_INSTRUCT',
call: 'playback.play',
value: { tlid: tlid }
}
}
export function playURIs( uris ){
2016-10-19 14:09:34 +13:00
return {
type: 'MOPIDY_PLAY_URIS',
uris: uris
}
}
export function enqueueTracksNext( uris ){
if( typeof(uris) !== 'object' ) uris = [uris]
return {
type: 'MOPIDY_ENQUEUE_TRACKS_NEXT',
uris: uris
}
}
export function enqueueTracks( uris, at_position = false ){
if( typeof(uris) !== 'object' ) uris = [uris];
var value = { uris: uris };
if( at_position ) value.at_position = at_position;
return {
type: 'MOPIDY_INSTRUCT',
2016-10-19 14:09:34 +13:00
call: 'tracklist.add',
value: value
2016-10-19 14:09:34 +13:00
}
}
export function removeTracks( tlids ){
return {
type: 'MOPIDY_INSTRUCT',
call: 'tracklist.remove',
value: { tlid: tlids }
}
}
export function reorderTracklist( indexes, insert_before ){
var range = helpers.createRange( indexes );
2016-11-25 19:04:27 +13:00
if( insert_before > range.start ) insert_before = insert_before - range.length
return {
type: 'MOPIDY_REORDER_TRACKLIST',
range_start: range.start,
range_length: range.length,
insert_before: insert_before
}
}
export function play(){
return instruct('playback.play');
}
export function pause(){
return instruct('playback.pause');
}
2016-11-03 18:22:26 +13:00
export function stop(){
return instruct('playback.stop');
}
export function next(){
return instruct('playback.next');
}
export function previous(){
return instruct('playback.previous');
}
2016-11-04 13:51:17 +13:00
export function setVolume( volume ){
return {
type: 'MOPIDY_INSTRUCT',
call: 'playback.setVolume',
value: { volume: volume }
}
}
2016-11-03 18:22:26 +13:00
export function seek( time_position ){
return {
type: 'MOPIDY_INSTRUCT',
call: 'playback.seek',
value: { time_position: time_position }
}
}
export function getTimePosition(){
return {
type: 'MOPIDY_INSTRUCT',
call: 'playback.getTimePosition'
}
}
2016-11-08 16:57:44 +13:00
export function setTimePosition( time_position ){
return {
type: 'MOPIDY_TIMEPOSITION',
data: time_position
}
}
/**
* Asset-oriented actions
**/
2016-11-14 11:20:02 +13:00
export function deletePlaylist( uri ){
return {
type: 'MOPIDY_DELETE_PLAYLIST',
uri: uri
}
}
export function getLibraryPlaylists(){
return { type: 'MOPIDY_GET_LIBRARY_PLAYLISTS' }
}
export function getPlaylist( uri ){
return {
type: 'MOPIDY_GET_PLAYLIST',
data: { uri: uri }
2016-11-01 07:37:18 +13:00
}
}
export function getDirectory( uri ){
2016-11-01 11:49:04 +13:00
return {
type: 'MOPIDY_GET_DIRECTORY',
2016-11-01 11:49:04 +13:00
data: { uri: uri }
}
}
2016-11-01 13:19:51 +13:00
export function getAlbum( uri ){
return {
type: 'MOPIDY_GET_ALBUM',
2016-11-01 13:19:51 +13:00
data: { uri: uri }
}
}
2016-11-01 16:41:04 +13:00
export function getArtist( uri ){
return {
type: 'MOPIDY_GET_ARTIST',
2016-11-01 16:41:04 +13:00
data: { uri: uri }
}
}
2016-11-01 19:27:59 +13:00
export function getArtists(){
return {
type: 'MOPIDY_GET_ARTISTS'
2016-11-01 19:27:59 +13:00
}
}
export function getAlbums(){
return {
type: 'MOPIDY_GET_ALBUMS'
}
}
2016-11-06 18:29:49 +13:00
/**
* Other general actions
**/
export function getSearchResults(query, backends = null, fields = ['any']){
2016-11-06 18:29:49 +13:00
var queryObj = {};
for( var i = 0; i < fields.length; i++ ){
queryObj[fields[i]] = [query];
}
2016-11-06 18:29:49 +13:00
return {
type: 'MOPIDY_INSTRUCT',
call: 'library.search',
value: { query: queryObj, uris: backends }
}
}