public Raspberry Connect(LogicalDevice.AudioPlayer logicalDevice)
{
this.AudioTrackDone += (o, e) =>
{
logicalDevice.RaiseAudioTrackDone();
};
logicalDevice.AudioChanged += (sender, e) =>
{
switch (e.Command)
{
case LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayFX:
if (e.LeftVolume.HasValue && e.RightVolume.HasValue)
this.oscClient.Send("/audio/fx/play", e.AudioFile, (float)e.LeftVolume.Value, (float)e.RightVolume.Value);
else
this.oscClient.Send("/audio/fx/play", e.AudioFile);
break;
case LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayNewFX:
if (e.LeftVolume.HasValue && e.RightVolume.HasValue)
this.oscClient.Send("/audio/fx/playnew", e.AudioFile, (float)e.LeftVolume.Value, (float)e.RightVolume.Value);
else
this.oscClient.Send("/audio/fx/playnew", e.AudioFile);
break;
case LogicalDevice.Event.AudioChangedEventArgs.Commands.CueFX:
this.oscClient.Send("/audio/fx/cue", e.AudioFile);
break;
case LogicalDevice.Event.AudioChangedEventArgs.Commands.CueTrack:
this.oscClient.Send("/audio/trk/cue", e.AudioFile);
break;
case LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayTrack:
this.oscClient.Send("/audio/trk/play", e.AudioFile);
break;
}
};
logicalDevice.ExecuteCommand += (sender, e) =>
{
switch (e.Command)
{
case LogicalDevice.Event.AudioCommandEventArgs.Commands.PlayBackground:
this.oscClient.Send("/audio/bg/play");
break;
case LogicalDevice.Event.AudioCommandEventArgs.Commands.PauseBackground:
this.oscClient.Send("/audio/bg/pause");
break;
case LogicalDevice.Event.AudioCommandEventArgs.Commands.ResumeFX:
this.oscClient.Send("/audio/fx/resume");
break;
case LogicalDevice.Event.AudioCommandEventArgs.Commands.PauseFX:
this.oscClient.Send("/audio/fx/pause");
break;
case LogicalDevice.Event.AudioCommandEventArgs.Commands.NextBackground:
this.oscClient.Send("/audio/bg/next");
break;
case LogicalDevice.Event.AudioCommandEventArgs.Commands.BackgroundVolume:
this.oscClient.Send("/audio/bg/volume", (float)((LogicalDevice.Event.AudioCommandValueEventArgs)e).Value);
break;
case LogicalDevice.Event.AudioCommandEventArgs.Commands.ResumeTrack:
this.oscClient.Send("/audio/trk/resume");
break;
case LogicalDevice.Event.AudioCommandEventArgs.Commands.PauseTrack:
this.oscClient.Send("/audio/trk/pause");
break;
}
};
return this;
}