public async Task Start(string port, string allow = "localhost", string password = "", bool update = true)
{
bool suc = false;
if (!started) suc = await chimneyMpdServer.Start(port, allow, password);
if (suc && !started)
{
chimneyMpdServer.OnDefault += chimneyMpdServer_OnDefault;
//
// Db Working
//
chimneyMpdServer.OnStatus += chimneyMpdServer_OnStatus;
//
// Db Working
//
chimneyMpdServer.OnCurrentSong += chimneyMpdServer_OnCurrentSong;
//
// Db Working
//
chimneyMpdServer.OnStats += chimneyMpdServer_OnStats;
chimneyMpdServer.OnCommandListBegin += chimneyMpdServer_OnCommandListBegin;
chimneyMpdServer.OnCommandListBeginOk += chimneyMpdServer_OnCommandListBeginOk;
chimneyMpdServer.OnCommandListEnd += chimneyMpdServer_OnCommandListEnd;
chimneyMpdServer.OnSetVol += chimneyMpdServer_OnSetVol;
//
// Db Working, complete, event: outputs
//
chimneyMpdServer.OnOutputs += chimneyMpdServer_OnOutputs;
chimneyMpdServer.OnToggleOutput += chimneyMpdServer_OnToggleOutput;
chimneyMpdServer.OnEnableOutput += chimneyMpdServer_OnEnableOutput;
chimneyMpdServer.OnDisableOutput += chimneyMpdServer_OnDisableOutput;
chimneyMpdServer.OnPlay += chimneyMpdServer_OnPlay;
chimneyMpdServer.OnStop += chimneyMpdServer_OnStop;
chimneyMpdServer.OnPause += chimneyMpdServer_OnPause;
chimneyMpdServer.OnNext += chimneyMpdServer_OnNext;
chimneyMpdServer.OnPrevious += chimneyMpdServer_OnPrevious;
//
// Db Working, event: playlist
//
chimneyMpdServer.OnClear += chimneyMpdServer_OnClear;
//
// Db Working, it looks like that but I'm not that sure
//
chimneyMpdServer.OnList += chimneyMpdServer_OnList;
//
// Db Working
//
chimneyMpdServer.OnListAll += chimneyMpdServer_OnListAll;
//
// Db Working
//
chimneyMpdServer.OnListAllInfo += chimneyMpdServer_OnListAllInfo;
//
// Db Working
//
chimneyMpdServer.OnLsInfo += chimneyMpdServer_OnLsInfo;
//
// Db Working for files and folders, event: playlist
//
chimneyMpdServer.OnAdd += chimneyMpdServer_OnAdd;
//
// Db Working, event: options
//
chimneyMpdServer.OnConsume += chimneyMpdServer_OnConsume;
chimneyMpdServer.OnRepeat += chimneyMpdServer_OnRepeat;
chimneyMpdServer.OnRandom += chimneyMpdServer_OnRandom;
chimneyMpdServer.OnSingle += chimneyMpdServer_OnSingle;
//
// Db Working, event: playlist
//
chimneyMpdServer.OnShuffle += chimneyMpdServer_OnShuffle;
//
// Db Working, event: playlist
//
chimneyMpdServer.OnAddId += chimneyMpdServer_OnAddId;
//
// Db Working, event: playlist
//
chimneyMpdServer.OnMoveId += chimneyMpdServer_OnMoveId;
//
// Db Working, event: playlist
//
chimneyMpdServer.OnDelete += chimneyMpdServer_OnDelete;
//
// Db Working, event: playlist
//
chimneyMpdServer.OnDeleteId += chimneyMpdServer_OnDeleteId;
//
// Db Working
//
chimneyMpdServer.OnPlaylistInfo += chimneyMpdServer_OnPlaylistInfo;
//
// Db Working
//
chimneyMpdServer.OnPlChanges += chimneyMpdServer_OnPlChanges;
chimneyMpdServer.OnPlayId += chimneyMpdServer_OnPlayId;
//
// Db Working, on the most importan tags
//
chimneyMpdServer.OnFind += chimneyMpdServer_OnFind;
//
// Db Working, on the most importan tags
//
chimneyMpdServer.OnSearch += chimneyMpdServer_OnSearch;
//
// Stored Playlists, complete
//
// Db Working, event: stored_playlist
//
chimneyMpdServer.OnSave += chimneyMpdServer_OnSave;
chimneyMpdServer.OnRm += chimneyMpdServer_OnRm;
chimneyMpdServer.OnRename += chimneyMpdServer_OnRename;
chimneyMpdServer.OnPlaylistMove += chimneyMpdServer_OnPlaylistMove;
chimneyMpdServer.OnPlaylistDelete += chimneyMpdServer_OnPlaylistDelete;
chimneyMpdServer.OnPlaylistClear += chimneyMpdServer_OnPlaylistClear;
chimneyMpdServer.OnPlaylistAdd += chimneyMpdServer_OnPlaylistAdd;
// Event: playlist
chimneyMpdServer.OnLoad += chimneyMpdServer_OnLoad;
chimneyMpdServer.OnListPlaylists += chimneyMpdServer_OnListPlaylists;
chimneyMpdServer.OnListPlaylistInfo += chimneyMpdServer_OnListPlaylistInfo;
chimneyMpdServer.OnListPlaylist += chimneyMpdServer_OnListPlaylist;
chimneyMpdServer.OnUpdate += chimneyMpdServer_OnUpdate;
chimneyMpdServer.OnIdle += chimneyMpdServer_OnIdle;
chimneyMpdServer.OnNoIdle += chimneyMpdServer_OnNoIdle;
chimneyMpdServer.OnSeekCur += chimneyMpdServer_OnSeekCur;
#if WINDOWS_PHONE_APP
BackgroundMediaPlayer.Current.MediaEnded += BackgroundMediaPlayer_MediaEnded;
//BackgroundMediaPlayer.Current.MediaOpened += BackgroundMediaPlayer_MediaOpened;
//BackgroundMediaPlayer.Current.CurrentStateChanged += BackgroundMediaPlayer_CurrentStateChanged;
//BackgroundMediaPlayer.Current.VolumeChanged += BackgroundMediaPlayer_VolumeChanged;
#else
ChimneyMPDMediaElement.MediaEnded += ChimneyMPDMediaElement_MediaEnded;
//ChimneyMPDMediaElement.VolumeChanged += ChimneyMPDMediaElement_VolumeChanged;
#endif
}
if (suc && !started)
{
await InitDatabase(db_name);
if (update)
{
is_db_updating = true;
await UpdateDatabase();
}
var options = await Dbconnection.QueryAsync<Option>("SELECT * FROM Options");
foreach (Option option in options)
{
switch (option.Name)
{
case ("random"):
option_random = option.ValueBool;
break;
case ("single"):
option_single = option.ValueBool;
break;
case ("repeat"):
option_repeat = option.ValueBool;
break;
case ("consume"):
option_consume = option.ValueBool;
break;
//case ("state"):
// current_state = option.ValueString;
// break;
default:
break;
}
}
started = true;
this.ServerStatedTime = DateTime.Now;
}
}