public void HandleMessage(DOMEvent e)
{
var data = e.As<MessageEvent>().data;
var cmd = data.Member("cmd").As<string>();
switch (cmd)
{
case "play":
Play();
break;
case "pause":
Pause();
break;
case "isReadyForPlay":
PostMessage(new { cmd = "isReadyForPlay", value = IsReadyForPlay() });
break;
case "getMasterVolume":
PostMessage(new { cmd = "getMasterVolume", value = _player.MasterVolume });
break;
case "setMasterVolume":
_player.MasterVolume = data.Member("value").As<float>();
break;
case "getPlaybackSpeed":
PostMessage(new { cmd = "getPlaybackSpeed", value = _player.Sequencer.PlaybackSpeed });
break;
case "setPlaybackSpeed":
_player.PlaybackSpeed = data.Member("value").As<float>();
break;
case "playPause":
PlayPause();
break;
case "stop":
Stop();
break;
case "setPositionTick":
SetPositionTick(data.Member("tick").As<int>());
break;
case "setPositionTime":
SetPositionTime(data.Member("time").As<int>());
break;
case "loadSoundFontUrl":
LoadSoundFontUrl(data.Member("url").As<string>());
break;
case "loadSoundFontBytes":
LoadSoundFontBytes(data.Member("data").As<byte[]>());
break;
case "loadMidiUrl":
LoadMidiUrl(data.Member("url").As<string>());
break;
case "loadMidiBytes":
LoadMidiBytes(data.Member("data").As<byte[]>());
break;
case "getState":
PostMessage(new { cmd = "getState", value = GetState() });
break;
case "isSoundFontLoaded":
PostMessage(new { cmd = "isSoundFontLoaded", value = IsSoundFontLoaded() });
break;
case "isMidiLoaded":
PostMessage(new { cmd = "isMidiLoaded", value = IsMidiLoaded() });
break;
case "setLogLevel":
SetLogLevel(data.Member("level").As<LogLevel>());
break;
}
}