Beispiel #1
0
        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);
        }
Beispiel #2
0
        public MonoExpanderInstance Connect(LogicalDevice.AudioPlayer logicalDevice)
        {
            this.AudioTrackDone += (o, e) =>
            {
                logicalDevice.RaiseAudioTrackDone();
            };

            this.AudioTrackStart.Subscribe(x =>
            {
                if (x.Item1 == AudioTypes.Track)
                {
                    logicalDevice.RaiseAudioTrackStart(x.Item2);
                }
            });

            logicalDevice.AudioChanged += (sender, e) =>
            {
                switch (e.Command)
                {
                case LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayNewFX:
                case LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayFX:
                    if (e.LeftVolume.HasValue && e.RightVolume.HasValue)
                    {
                        SendMessage(new AudioEffectPlay
                        {
                            FileName     = e.AudioFile,
                            VolumeLeft   = e.LeftVolume.Value,
                            VolumeRight  = e.RightVolume.Value,
                            Simultaneous = e.Command == LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayNewFX
                        });
                    }
                    else
                    {
                        SendMessage(new AudioEffectPlay
                        {
                            FileName     = e.AudioFile,
                            Simultaneous = e.Command == LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayNewFX
                        });
                    }
                    break;

                case LogicalDevice.Event.AudioChangedEventArgs.Commands.CueFX:
                    SendMessage(new AudioEffectCue
                    {
                        FileName = e.AudioFile
                    });
                    break;

                case LogicalDevice.Event.AudioChangedEventArgs.Commands.CueTrack:
                    SendMessage(new AudioTrackCue
                    {
                        FileName = e.AudioFile
                    });
                    break;

                case LogicalDevice.Event.AudioChangedEventArgs.Commands.PlayTrack:
                    SendMessage(new AudioTrackPlay
                    {
                        FileName = e.AudioFile
                    });
                    break;
                }
            };

            logicalDevice.ExecuteCommand += (sender, e) =>
            {
                switch (e.Command)
                {
                case LogicalDevice.Event.AudioCommandEventArgs.Commands.PlayBackground:
                    SendMessage(new AudioBackgroundResume(), "play-bg");
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.PauseBackground:
                    SendMessage(new AudioBackgroundPause(), "pause-bg");
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.ResumeFX:
                    SendMessage(new AudioEffectResume());
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.PauseFX:
                    SendMessage(new AudioEffectPause());
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.NextBackground:
                    SendMessage(new AudioBackgroundNext());
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.BackgroundVolume:
                    SendMessage(new AudioBackgroundSetVolume
                    {
                        Volume = ((LogicalDevice.Event.AudioCommandValueEventArgs)e).Value
                    }, "mv-bg");
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.ResumeTrack:
                    SendMessage(new AudioTrackResume());
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.PauseTrack:
                    SendMessage(new AudioTrackPause());
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.EffectVolume:
                    SendMessage(new AudioEffectSetVolume
                    {
                        Volume = ((LogicalDevice.Event.AudioCommandValueEventArgs)e).Value
                    }, "mv-fx");
                    break;

                case LogicalDevice.Event.AudioCommandEventArgs.Commands.TrackVolume:
                    SendMessage(new AudioTrackSetVolume
                    {
                        Volume = ((LogicalDevice.Event.AudioCommandValueEventArgs)e).Value
                    }, "mv-trk");
                    break;
                }
            };

            return(this);
        }