示例#1
0
        void ThreadPlay(int times = 1)
        {
            var args = new BowlPlayerEventArgs (times);
            var bowls = times.Times ().Select (i => Platform.CreateBowlSound (BowlSoundPath)).ToArray ();

            Platform.RunOnMainThread (() => StartedPlaying.Raise (this, args));

            foreach (var bowl in bowls) {
                bowl.Play (Platform.Preferences.BowlVolumePercentage);
                Platform.ThreadSleep (TimeBetweenBowls);
            }

            Platform.ThreadSleep (AbstractBowlSound.SoundDuration);

            foreach (var bowl in bowls)
                bowl.Dispose ();

            Platform.RunOnMainThread (() => StoppedPlaying.Raise (this, args));
        }
示例#2
0
        void ThreadPlay(int times = 1)
        {
            var args  = new BowlPlayerEventArgs(times);
            var bowls = times.Times().Select(i => Platform.CreateBowlSound(BowlSoundPath)).ToArray();

            Platform.RunOnMainThread(() => StartedPlaying.Raise(this, args));

            foreach (var bowl in bowls)
            {
                bowl.Play(Platform.Preferences.BowlVolumePercentage);
                Platform.ThreadSleep(TimeBetweenBowls);
            }

            Platform.ThreadSleep(AbstractBowlSound.SoundDuration);

            foreach (var bowl in bowls)
            {
                bowl.Dispose();
            }

            Platform.RunOnMainThread(() => StoppedPlaying.Raise(this, args));
        }
示例#3
0
        void BowlPlayerWillPlay(object sender, BowlPlayerEventArgs e)
        {
            if (Controller.BowlPlayer.IsPlaying) return;

            var duration = BowlPlayer.TimeBetweenBowls.Seconds * (e.TimesPlayed - 1) + BowlSound.SoundDuration.Seconds;
            iTunes.GoQuiet (duration.Seconds ());

            // We sleep for a moment to let iTunes go quiet.
            Platform.ThreadSleep (1.Second ());
        }
示例#4
0
        void BowlPlayerStartedPlaying(object sender, BowlPlayerEventArgs e)
        {
            if (Controller.BowlPlayer.IsPlaying) return;

            NSApplication.SharedApplication.RequestUserAttention (NSRequestUserAttentionType.InformationalRequest);
        }