const types = {
    initialize: 'initialize',

    disconnect: 'disconnect',

    prayer: 'prayer',

    volume: 'volume',

    djPlayer: {
        namespace: 'djPlayer',
        events: {
            songChanged: 'songChanged',
            songsChanged: 'songsChanged',
            stateChange: 'stateChange',
            positionChange: 'positionChange',
            getLists: 'getLists',
            getStatus: 'getStatus',
            getPlaying: 'getPlaying',
            playList: 'playList',
            pauseList: 'pauseList',
            stopList: 'stopList',
            nextSong: 'nextSong',
            changeAnnounce: 'changeAnnounce',
            changeLooping: 'changeLooping',
            changeShuffling: 'changeShuffling',
            playListFinished: 'playListFinished',
            refreshPlaylist: 'refreshPlaylist',
            vumeterChanged: 'vumeterChanged',
            getWebMediaPlayerStatus: 'getWebMediaPlayerStatus',
            started: 'started',
            stopped: 'stoppped'
        }
    },

    schedules: {
        namespace: 'schedules',
        events: {
            songChanged: 'songChanged',
            positionChanged: 'positionChanged',
            vumeterChanged: 'vumeterChanged',
            stateChange: 'stateChange',
            playListFinished: 'playListFinished',
            nextTrack: 'nextTrack',
            getWebMediaPlayerStatus: 'getWebMediaPlayerStatus'
        }
    },

    announces: {
        namespace: 'announces',
        events: {
            songChanged: 'songChanged',
            positionChanged: 'positionChanged',
            vumeterChanged: 'vumeterChanged',
            // playListFinished: 'playListFinished',
            getStatus: 'getStatus',
            remainingSeconds: 'remainingSeconds',
            announceStarted: 'announceStarted',
            announceFinished: 'announceFinished',
            getWebMediaPlayerStatus: 'getWebMediaPlayerStatus'
        }
    },

    downloads: {
        namespace: 'downloads',
        events: {
            schedulesProgress: 'schedulesProgress',
            schedulesCompleted: 'schedulesCompleted',
            schedulesError: 'schedulesError',
            schedulesListCompleted: 'schedulesListCompleted',
            announcesProgress: 'announcesProgress',
            announcesCompleted: 'announcesCompleted',
            announcesError: 'announcesError',
            announcesListCompleted: 'announcesListCompleted'
        }
    },
    pushaudio: {
        namespace: 'pushaudio',
        events: {
            started: 'started',
            stopped: 'stopped'
        }
    },
    streaming: {
        namespace: 'streaming',
        events: {
            getStatus: 'getStatus',
            status: 'status',
            vumeter: 'vumeter',
            positionChange: 'positionChange',
            fileChanged: 'fileChanged',
            urlChange: 'urlChange',
            started: 'started',
            finished: 'finished',
            stateChanged: 'stateChanged',
            getWebMediaPlayerStatus: 'getWebMediaPlayerStatus'
        }
    },

    bluetooth: {
        namespace: 'bluetooth',
        events: {
            scan: 'scan',
            scanOff: 'scanOff',
            getDevices: 'getDevices',
            devices: 'devices',
            getControllers: 'getControllers',
            controllers: 'controllers',
            connect: 'connect',
            disconnect: 'disconnect',
            rememberBluetooth: 'rememberBluetooth',
            rememberedBluetooth: 'rememberedBluetooth',
            forgetBluetooth: 'forgetBluetooth',
            forgetedBluetooth: 'forgetedBluetooth',
            getPairedDevices: 'getPairedBluetooth',
            getFromControllerBluetooth: 'getFromControllerBluetooth',
            removeDevice: 'removeDevice'
        }
    },

    settings: {
        namespace: 'settings',
        events: {
            refreshApplication: 'refreshApplication',
            startedRefreshed: 'startedRefreshed'
        }
    }
};

module.exports = types
