Пример #1
0
 public void IfDbAlreadyOpenShouldThrowException()
 {
     musicPlayer = new MusicPlayer(mediaDb, soundMaker);
     mediaDb.OpenConnection();
     Assert.Throws <DatabaseAlreadyOpenException>(() => mediaDb.OpenConnection());
     mediaDb.CloseConnection();
 }
Пример #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ViewFactory" /> class.
 /// </summary>
 /// <param name="musicPlayer">The music player.</param>
 /// <param name="playerController">The player controller.</param>
 /// <param name="volumeService">The volume service.</param>
 /// <param name="menuController">The menu controller.</param>
 /// <param name="lifecycleConfiguration">The lifecycle configuration.</param>
 public ViewFactory(IMusicPlayer musicPlayer, PlayerController playerController, IVolumeService volumeService, MenuController menuController, ILifecycleConfiguration lifecycleConfiguration)
 {
     this.playerView   = new Lazy <PlayerTextView>(() => new PlayerTextView(playerController, musicPlayer, volumeService), LazyThreadSafetyMode.ExecutionAndPublication);
     this.menuView     = new Lazy <MenuTextView>(() => new MenuTextView(new NetworkDeviceInfoProvider(), menuController));
     this.volumeView   = new Lazy <VolumeTextView>(() => new VolumeTextView(volumeService), LazyThreadSafetyMode.ExecutionAndPublication);
     this.shutdownView = new Lazy <ShutdownTextView>(() => new ShutdownTextView(lifecycleConfiguration));
 }
        public override void Execute(IExecutionEnvironment environment, MessageReceivedEvent e, string commandArgs)
        {
            if (e.Instigator.VoiceChannel is null)
            {
                e.Channel.SendMessageAsync("Вам требуется зайти в какой-либо голосовой канал").RunSync();
                return;
            }
            IMusicSearchService musicSearchService = environment.GetService <IMusicSearchService>();
            IMusicPlayer        musicPlayer        = environment.GetService <IMusicPlayer>();

            string[] results = musicSearchService.GetOrCreateMusicSources(commandArgs).ToArray();
            if (results.Length == 0)
            {
                e.Channel.SendMessageAsync("Не найдено ни одного результата по данному запросу").RunSync();
                return;
            }
            string source = results[Random.Next(results.Length)];

            musicPlayer.Play(e.Instigator.VoiceChannel, e.Channel, e.GuildId, source);
            EmbedBuilder builder = new EmbedBuilder();

            builder.AddField(Path.GetFileNameWithoutExtension(source), $"Now playing (selected from {results.Length} sources)");
            builder.WithColor(Color.Green);
            e.Channel.SendMessageAsync(null, false, builder.Build()).RunSync();
        }
Пример #4
0
        public void NowPlayingShouldBeSilence(string title)
        {
            musicPlayer = new MusicPlayer(mediaDb, soundMaker);
            musicPlayer.Stop();
            string actual = musicPlayer.NowPlaying();

            Assert.AreEqual(defaultSong, actual, "Tystnad Råder?");
        }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ServerHost" /> class.
 /// </summary>
 /// <param name="player">The underlying music player.</param>
 /// <param name="port">The port to host the service at.</param>
 public ServerHost(IMusicPlayer player, int port) : base(player)
 {
     _port = port;
     player.SongChanged += Player_SongChanged;
     _clients            = new List <Client>();
     _player             = player;
     InitWCFHost();
 }
Пример #6
0
        public void NowPlayingShouldBeSilent()
        {
            player = new MusicPlayer(mediaDb, soundDb);

            string actual = player.NowPlaying();

            Assert.AreEqual(defaultSong, actual, "Tystnad råder tydligen inte");
        }
Пример #7
0
        public MusicPlayer(IPomodoroEngine engine, MusicPlayerPluginSettings settings, IMusicPlayer musicPlayer, PomodoroEngineSettings engineSettings)
        {
            _engine         = engine;
            _settings       = settings;
            _musicPlayer    = musicPlayer;
            _engineSettings = engineSettings;

            _engine.PropertyChanged += _engine_PropertyChanged;
        }
Пример #8
0
        public SoundNotifications(IPomodoroEngine engine, SoundNotificationsSettings settings, IMusicPlayer musicPlayer, PomodoroEngineSettings engineSettings)
        {
            _engine         = engine;
            _settings       = settings;
            _musicPlayer    = musicPlayer;
            _engineSettings = engineSettings;

            _engine.PropertyChanged += _engine_PropertyChanged;
        }
Пример #9
0
        public MusicController(StaffsViewModel staffs, Editor edit)
        {
            fileManager     = new FileManager();
            psamContolLib   = new PsamContolLib();
            staffsViewModel = staffs;
            editor          = edit;

            musicPlayer = new SanfordLib();
        }
Пример #10
0
        /// <summary>
        /// Gets a player with server capabilities.
        /// </summary>
        /// <param name="port">The port to listen on.</param>
        /// <param name="player">The optional current music player.</param>
        /// <returns>The music player with server capabilities.</returns>
        public static IMusicPlayer GetServerPlayer(int port, IMusicPlayer player = null)
        {
            if (player == null)
            {
                player = new Controller.MusicPlayer();
            }

            return((player as IServer) == null ? new ServerHost(player, port) : player);
        }
 public MusicPlayerController(ISession session, IMusicPlayer musicPlayer)
 {
     _musicPlayer = musicPlayer;
     _session = session;
     _session.EndOfTrack += OnEndOfTrack;
     _timer = new Timer();
     _timer.Elapsed += OnTimerElapsed;
     _timer.Interval = 100;
 }
Пример #12
0
        public MainWindowViewModel(IMusicPlayer m, SongCollection collection)
        {
            if (DesignerProperties.GetIsInDesignMode(
                    new System.Windows.DependencyObject()))
            {
                return;
            }

            _seconds = 0;

            _playingSong = new Song();
            QueueInfo    = "";
            _player      = m;
            ElapsedTime  = "00:00 / 00:00";
            _incrementPlayingProgress          = new Timer();
            _incrementPlayingProgress.Interval = 1000;
            _currentQueue = collection;
            _incrementPlayingProgress.Elapsed += (sender, e) =>
            {
                _seconds        += 1000;
                PlayingProgress += 1000;

                string displayProgress = TimeSpan.FromMilliseconds(_seconds).ToString("mm\\:ss");
                ElapsedTime = displayProgress + " / " + PlayingSong.DisplayDuration;
            };
            _findSongEnd          = new Timer();
            _findSongEnd.Interval = 1;
            _findSongEnd.Elapsed += (sender, e) =>
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    if (_player.IsDone())
                    {
                        Debug.WriteLine("Done");
                        if (++_playingIndex < _currentQueue.SongList.Count)
                        {
                            SelectedSong = _currentQueue.SongList[_playingIndex];
                            PlaySongAction();
                        }
                        else
                        {
                            StopSongAction();
                        }
                    }
                });
            };

            AddToQueueCommand  = new CommandHandler(() => AddToQueueAction(), () => true);
            ClearQueueCommand  = new CommandHandler(() => ClearQueueAction(), () => true);
            PlaySong           = new CommandHandler(() => PlaySongAction(), () => true);
            PauseSong          = new CommandHandler(() => PauseSongAction(), () => true);
            StopSong           = new CommandHandler(() => StopSongAction(), () => true);
            FastForwardCommand = new CommandHandler(() => FastForwardAction(), () => true);
            RewindCommand      = new CommandHandler(() => RewindAction(), () => true);
        }
Пример #13
0
        public MusicService(ILogger logger,
                            IMusicProviderFactory musicProviderFactory,
                            IAutoPlay autoplayer,
                            IDataService <QueuedTrack> queuedTrackDataService,
                            IDataService <User> adminUserDataService,
                            ISearchSuggestionService searchSuggestionService,
                            IRickRollService rickRollService,
                            IBroadcastService broadcastService,
                            ISoundBoardService soundBoardService,
                            ISkipHelper skipHelper,
                            IVolume volume,
                            IQueueManager queueManager,
                            IAlreadyQueuedHelper alreadyQueuedHelper,
                            IMusicPlayer musicPlayer,
                            ICallbackClient callbackClient,
                            IUserService userService,
                            IVetoHelper vetoHelper,
                            IQueueRuleHelper queueRuleHelper,
                            ISettings settings,
                            ISearchRuleHelper searchRuleHelper
                            )
        {
            this.vetoHelper          = vetoHelper;
            this.callbackClient      = callbackClient;
            this.alreadyQueuedHelper = alreadyQueuedHelper;
            this.queueManager        = queueManager;
            this.broadcastService    = broadcastService;
            this.rickRollService     = rickRollService;
            this.logger = logger;
            this.musicProviderFactory    = musicProviderFactory;
            this.autoplayer              = autoplayer;
            this.queuedTrackDataService  = queuedTrackDataService;
            this.adminUserDataService    = adminUserDataService;
            this.searchSuggestionService = searchSuggestionService;
            this.soundBoardService       = soundBoardService;
            this.skipHelper              = skipHelper;
            this.volume          = volume;
            this.musicPlayer     = musicPlayer;
            this.callbackClient  = callbackClient;
            this.userService     = userService;
            this.queueRuleHelper = queueRuleHelper;
            this.settings        = settings;

            this.searchRuleHelper = searchRuleHelper;
            foreach (var provider in musicProviderFactory.GetAllMusicProviders())
            {
                provider.TrackEnded += musicProvider_TrackEnded;
            }

            if (settings.AutoStart)
            {
                PlayNextTrack();
            }
        }
Пример #14
0
 public MusicPlayerManager()
 {
     if (File.Exists("SoundTouch.dll") && File.Exists("SoundTouch_x64.dll"))
     {
         musicPlayer = new SoundTouchPlayer();
     }
     else
     {
         musicPlayer = new NAudioPlayer();
     }
 }
Пример #15
0
	    public MusicService(ILogger logger,
			IMusicProviderFactory musicProviderFactory,
			IAutoPlay autoplayer,
            IDataService<QueuedTrack> queuedTrackDataService,
			IDataService<User> adminUserDataService,
			ISearchSuggestionService searchSuggestionService,
			IRickRollService rickRollService,
			IBroadcastService broadcastService,
			ISoundBoardService soundBoardService,
            ISkipHelper skipHelper,
            IVolume volume,
            IQueueManager queueManager,
            IAlreadyQueuedHelper alreadyQueuedHelper,
            IMusicPlayer musicPlayer,
            ICallbackClient callbackClient,
            IUserService userService,
			IVetoHelper vetoHelper,
            IQueueRuleHelper queueRuleHelper,
            ISettings settings,
            ISearchRuleHelper searchRuleHelper
            )
		{
	        this.vetoHelper = vetoHelper;
	        this.callbackClient = callbackClient;
	        this.alreadyQueuedHelper = alreadyQueuedHelper;
	        this.queueManager = queueManager;
	        this.broadcastService = broadcastService;
			this.rickRollService = rickRollService;
			this.logger = logger;
			this.musicProviderFactory = musicProviderFactory;
			this.autoplayer = autoplayer;
			this.queuedTrackDataService = queuedTrackDataService;
			this.adminUserDataService = adminUserDataService;
			this.searchSuggestionService = searchSuggestionService;
			this.soundBoardService = soundBoardService;
			this.skipHelper = skipHelper;
            this.volume = volume;
            this.musicPlayer = musicPlayer;
	        this.callbackClient = callbackClient;
            this.userService = userService;            
            this.queueRuleHelper = queueRuleHelper;
	        this.settings = settings;

	        this.searchRuleHelper = searchRuleHelper;
	        foreach (var provider in musicProviderFactory.GetAllMusicProviders())
			{
				provider.TrackEnded += musicProvider_TrackEnded;        
			}

			if (settings.AutoStart)
			{
			    PlayNextTrack();
			}
		}
Пример #16
0
        public override void Execute(IExecutionEnvironment environment, MessageReceivedEvent e, string commandArgs)
        {
            IMusicSearchService  musicSearchService = environment.GetService <IMusicSearchService>();
            IMusicPlayer         musicPlayer        = environment.GetService <IMusicPlayer>();
            IEnumerable <string> files = musicSearchService.GetOrCreateMusicSources(commandArgs);

            if (files.Count() == 0)
            {
                e.Channel.SendMessageAsync("Не найдено ни одного результата по данному запросу").RunSync();
                return;
            }
            EmbedBuilder builder = null;

            if (files.Count() > 1)
            {
                builder = new EmbedBuilder();
                builder.WithTitle("Несколько результатов найдено");
                builder.WithDescription("Попробуйте указать более точное название");
                int counter         = 1;
                int advancedResults = 0;
                foreach (var file in files)
                {
                    if (counter < EmbedBuilder.MaxFieldCount - 1)
                    {
                        builder.AddField(counter.ToString() + ".", System.IO.Path.GetFileNameWithoutExtension(file));
                    }
                    else
                    {
                        ++advancedResults;
                    }
                    ++counter;
                }
                if (advancedResults > 0)
                {
                    builder.AddField($"Ещё результаты ({advancedResults})", "...");
                }
                builder.WithColor(Color.LightGrey);
                e.Channel.SendMessageAsync(null, false, builder.Build()).RunSync();
                return;
            }
            if (e.Instigator.VoiceChannel is null)
            {
                e.Channel.SendMessageAsync("Вам требуется зайти в какой-либо голосовой канал").RunSync();
                return;
            }
            string source = musicSearchService.GetOrCreateMusicSources(commandArgs).First();

            musicPlayer.Play(e.Instigator.VoiceChannel, e.Channel, e.GuildId, source);
            builder = new EmbedBuilder();
            builder.AddField(Path.GetFileNameWithoutExtension(source), "Now playing");
            builder.WithColor(Color.Green);
            e.Channel.SendMessageAsync(null, false, builder.Build()).RunSync();
        }
Пример #17
0
        public AlPlayer(IMusicPlayer player, int rate)
        {
            _player = player;
            _rate   = rate;

            _device  = Alc.OpenDevice(null);
            _context = Alc.CreateContext(_device, null);

            Console.WriteLine(Alc.GetString(IntPtr.Zero, Alc.AllDevicesSpecifier));

            Alc.MakeContextCurrent(_context);
        }
Пример #18
0
        /// <summary>
        /// Creates a new player.
        /// </summary>
        /// <param name="player">The new player.</param>
        private void NewPlayer(IMusicPlayer player = null)
        {
            var server = _player as IServer;

            if (server == null)
            {
                _player?.Dispose();
                _player              = null;
                _player              = player ?? Factory.GetPlayer();
                _player.SongChanged += SongChanged;
            }
        }
Пример #19
0
        public void NumberOfSongsInPlayListShouldReturnThree(string title)
        {
            musicPlayer = new MusicPlayer(mediaDb, soundMaker);
            int songsInQueue = musicPlayer.NumSongsInQueue;

            mediaDb.OpenConnection();
            musicPlayer.LoadSongs("Disturbed");
            mediaDb.CloseConnection();
            int presentSongsInQueue = musicPlayer.NumSongsInQueue;

            Assert.That(presentSongsInQueue == 3, "Inga sånger lades till");
        }
Пример #20
0
 public ConsoleSession(NetworkSettings settings, IMusicPlayer player)
 {
     _player = player;
     var interfaces = NetworkInterface.GetAllNetworkInterfaces();
     _settings = settings;
     _user = new HubblUser
     {
         Id = interfaces.First().Id,
         Title = Environment.MachineName,
         IsHub = true,
         Hub = Environment.MachineName
     };
 }
Пример #21
0
        /// <summary>
        /// Create a connection to a musicplayer server.
        /// </summary>
        /// <param name="player">The musicplayer.</param>
        /// <param name="address">The server ip address.</param>
        /// <param name="port">The server port.</param>
        public ClientConnection(IMusicPlayer player, IPAddress address, int port) : base(player)
        {
            _client = new WCFServerClient(this);
            string serviceAddress        = $"net.tcp://{address.ToString()}:{port}/";
            NetTcpContextBinding binding = new NetTcpContextBinding(SecurityMode.None);

            binding.CloseTimeout           = new TimeSpan(0, 1, 0);
            binding.ReceiveTimeout         = new TimeSpan(1, 0, 0);
            binding.SendTimeout            = new TimeSpan(0, 1, 0);
            binding.MaxReceivedMessageSize = 100000000; // 100Mb
            _factory = new DuplexChannelFactory <IServerContract>(new InstanceContext(_client), binding, serviceAddress);
            _server  = _factory.CreateChannel();
            _server.Anounce();
        }
Пример #22
0
        public override async Task BeforeExecutionAsync(CommandContext ctx)
        {
            try
            {
                await this.Service.ValidateNodeConnectionAsync();

                this.Player = await this.Service.GetOrCreatePlayerAsync(ctx.Guild);
            }
            catch
            {
                await ctx.RespondAsync($"{ctx.User.Mention} :x: Lavalink node unavailable!");

                throw;
            }
        }
Пример #23
0
        public void IfNoSongIsPlayingStartNext(string search)
        {
            musicPlayer = new MusicPlayer(mediaDb, soundMaker);
            mediaDb.OpenConnection();
            musicPlayer.LoadSongs("Disturbed");
            mediaDb.CloseConnection();

            int    presentSongsInQueue = musicPlayer.NumSongsInQueue;
            string newActual           = "";

            StringAssert.Contains("Tystnad Råder", musicPlayer.NowPlaying(), "Det spelades visst en låt!");
            musicPlayer.Play();
            newActual = musicPlayer.NowPlaying();
            //}
            Assert.Greater(presentSongsInQueue, 0, "No more songs in Playlist");
        }
Пример #24
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MusicFileEngine"/> class.
        /// </summary>
        /// <param name="player">
        /// The player.
        /// </param>
        /// <param name="library">The music library</param>
        /// <exception cref="ArgumentNullException">
        /// Thrown if arguments are null.  Don't do that.  Except for Path. Path can be null.  I don't know why.
        /// </exception>
        public MusicFileEngine(IMusicPlayer player, IMusicLibrary library)
        {
            this.Library = library;
            if (player == null)
            {
                throw new ArgumentNullException("player");
            }

            if (library == null)
            {
                throw new ArgumentNullException("library");
            }

            this.player = player;
            this.player.PropertyChanged += this.PlayerOnPropertyChanged;
            this.player.TrackEnded += this.PlayerOnTrackEnded;
            this.currentlyPlaying = false;
        }
Пример #25
0
        private async Task RegisterExternalServicesAsync()
        {
            using var scope = _scopeFactory.CreateScope();

            _bumper           = scope.ServiceProvider.GetRequiredService <IBumpManager>();
            _bumper.OnNotify += OnBumperNotifyAsync;

            _activityManager = scope.ServiceProvider.GetRequiredService <IActivityManager>();
            _activityManager.OnNotification += OnActivityNotificationAsync;
            _activityManager.OnUpdated      += OnActivityUpdatedAsync;
            _activityManager.OnDisabled     += OnActivityDisabledAsync;
            _activityManager.OnCreated      += OnActivityCreatedAsync;
            _activityManager.OnRescheduled  += OnActivityRescheduledAsync;
            await _activityManager.InitAsync();

            _musicPlayer           = scope.ServiceProvider.GetRequiredService <IMusicPlayer>();
            _musicPlayer.OnUpdate += OnMusicPlayerUpdateAsync;
        }
Пример #26
0
        //=========================================
        // Method
        //=========================================
        public override IMusicShot Shot(IMusicPlayer player, IMusicPlayback playback)
        {
            var playlist = player.PlayList;
            var list     = new List <IMusicShot>();

            foreach (var p in playlist)
            {
                var fadeOut = new FadeOutMusicShot(m_duration, p);

                list.Add(fadeOut);
            }
            if (playback != null)
            {
                var fadeIn = new FadeInMusicShot(m_duration, playback);
                list.Add(fadeIn);
            }
            return(new ParallelMusicShot(list));
        }
Пример #27
0
        public static string PrettyTotalTime(this IMusicPlayer mp)
        {
            long sum = 0;

            foreach (var track in mp.GetQueuedTracks())
            {
                if (track.Duration == TimeSpan.MaxValue)
                {
                    return("∞");
                }

                sum += track.Duration.Ticks;
            }

            var total = new TimeSpan(sum);

            return(total.ToString(@"hh\:mm\:ss"));
        }
Пример #28
0
        public void NowPlayingShouldBeCurrentSong()
        {
            player = new MusicPlayer(mediaDb, soundDb);
            mediaDb.OpenConnection();

            player.LoadSongs("to");

            mediaDb.CloseConnection();
            player.Play();

            //Jag hade tänkt att hämta defaultSong från musicplayer, men det gick ej då det strider mot Interfacet.
            //Antog att det inte var okej att lägga till en property där, därav upprepningen.

            string actual = player.NowPlaying();

            player.Stop();
            Assert.AreNotEqual(defaultSong, actual, "Tystnad ska ej råda");
        }
Пример #29
0
        public GameWindow(Rectangle rect) : base(rect)
        {
            Resizable = false;

            //we get the default basic view converters from the current loaded toolkit
            var converters = FigmaSharp.AppContext.Current.GetFigmaConverters();

            //in this case we want use a remote file provider (figma url from our document)
            var fileProvider = new FigmaRemoteFileProvider();

            fileProvider.Load("Jv8kwhoRsrmtJDsSHcTgWGYu");

            //we initialize our renderer service, this uses all the converters passed
            //and generate a collection of NodesProcessed which is basically contains <FigmaModel, IView, FigmaParentModel>
            var rendererService = new FigmaViewRendererService(fileProvider, converters);

            //play background music
            backgroundMusic = new MusicPlayer("Background", "mp3");
            backgroundMusic.Play(-1);

            coinSound     = new MusicPlayer("Coin", "mp3");
            gameOverSound = new MusicPlayer("GameOver", "mp3");

            //we want load the entire level 1
            IView view = rendererService.RenderByName <IView>("Level1");

            Content = view;

            playerTile = rendererService.FindViewStartsWith <IImageView>("Player");

            startingPoint = playerTile.Allocation.Origin;

            pointsLabel = rendererService.FindViewByName <ILabel>("Points");
            gemsTiles   = rendererService.FindViewsStartsWith <IImageView>("Gem")
                          .ToList();
            wallTiles = rendererService.FindViewsStartsWith <IImageView>("Tile")
                        .ToArray();
            spikesTiles = rendererService.FindViewsStartsWith <IImageView>("Spikes")
                          .ToArray();
            heartTiles = rendererService.FindViewsStartsWith <IImageView>("Heart")
                         .OrderBy(s => s.Allocation.X)
                         .ToList();
            WorldUpdate();
        }
Пример #30
0
        public void StopThePlayingOfSongButKeepSongList(string search)
        {
            musicPlayer = new MusicPlayer(mediaDb, soundMaker);
            mediaDb.OpenConnection();
            musicPlayer.LoadSongs("Mustasch");
            mediaDb.CloseConnection();

            int presentSongsInQueue = musicPlayer.NumSongsInQueue;

            musicPlayer.Play();
            string actual = musicPlayer.NowPlaying();

            musicPlayer.Stop();
            Assert.AreNotEqual(defaultSong, actual, "Tystnad ska inte råda");

            string newActual = musicPlayer.NowPlaying();

            //}
            Assert.Greater(presentSongsInQueue, 0, "No more songs in Playlist");
        }
Пример #31
0
        public override void Execute(IExecutionEnvironment environment, MessageReceivedEvent e, string commandArgs)
        {
            IMusicPlayer musicPlayer = environment.GetService <IMusicPlayer>();

            //EmbedBuilder builder = new EmbedBuilder();
            try {
                musicPlayer.Stop(e.Channel, e.GuildId);

                /*builder.WithTitle("Stopped");
                 * builder.WithColor(Color.LighterGrey);*/
                //e.Channel.SendMessageAsync(null, false, builder.Build()).RunSync();
                e.Message.AddReactionAsync(new Emoji("\u23F9\uFE0F")).RunSync();
            }
            catch (ArgumentException) {
                /*builder.WithTitle("Но ведь я ничего и не играл");
                 * builder.WithColor(Color.Red);
                 * e.Channel.SendMessageAsync(null, false, builder.Build()).RunSync();*/
                e.Channel.SendMessageAsync("Но ведь я ничего и не играл").RunSync();
            }
        }
Пример #32
0
        public void NumberOfSongsInQue()
        {
            player = new MusicPlayer(mediaDb, soundDb);
            int songs = player.NumSongsInQueue;

            Assert.AreEqual(0, songs, "Number of songs does not match");
            mediaDb.OpenConnection();

            player.LoadSongs("to");
            mediaDb.CloseConnection();

            songs = player.NumSongsInQueue;

            Assert.AreEqual(2, songs, "Number of songs does not match");

            player.NextSong();
            player.NextSong();
            songs = player.NumSongsInQueue;

            Assert.That(0, Is.EqualTo(songs), "Number of songs does not match");
        }
Пример #33
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserInterfaceModule" /> class.
 /// </summary>
 /// <param name="application">The application.</param>
 /// <param name="userInterfaceBridge">The user interface framework.</param>
 /// <param name="controlsModule">The controls module.</param>
 /// <param name="musicPlayer">The music player.</param>
 /// <param name="playerModule">The player module.</param>
 /// <param name="volumeModule">The volume module.</param>
 /// <param name="allowShutdown">if set to <c>true</c> [allow shutdown].</param>
 /// <param name="lifecycleConfiguration">The lifecycle configuration.</param>
 /// <param name="timeoutConfiguration">The timeout configuration.</param>
 /// <param name="reporters">The reporters.</param>
 public UserInterfaceModule(
     IApplication application,
     IUserInterfaceBridge userInterfaceBridge,
     IControlsModule controlsModule,
     IMusicPlayer musicPlayer,
     PlayerModule playerModule,
     VolumeModule volumeModule,
     bool allowShutdown,
     ILifecycleConfiguration lifecycleConfiguration,
     ITimeoutConfiguration timeoutConfiguration,
     Reporters?reporters = null)
 {
     this.application            = application;
     this.userInterfaceBridge    = userInterfaceBridge;
     this.controlsModule         = controlsModule;
     this.musicPlayer            = musicPlayer;
     this.playerModule           = playerModule;
     this.volumeModule           = volumeModule;
     this.allowShutdown          = allowShutdown;
     this.lifecycleConfiguration = lifecycleConfiguration;
     this.timeoutConfiguration   = timeoutConfiguration;
     this.reporters = reporters;
 }
        public PlayerViewModel(IMusicPlayer iMusicPlayer, IPlayListFactory iPlayListFactory)
        {
            _IMusicPlayer = iMusicPlayer;
            _IPlayListFactory = iPlayListFactory;

            _IMusicPlayer.TrackEvent += OnTrackEvent;
            _IMusicPlayer.TrackPlaying += TrackPlaying;

            _PlayList = _IPlayListFactory.CreateAlbumPlayList("Memory PlayList");
            _IMusicPlayer.PlayList = _PlayList; 
            _PlayedAlbums = new CollectionWithDetailVM<IAlbum>(_PlayList.Albums);

            Play = RelayCommand.Instanciate(()=>_IMusicPlayer.Mode = PlayMode.Play);
            Pause = RelayCommand.Instanciate(() => _IMusicPlayer.Mode = PlayMode.Paused);
            VolumeUp = RelayCommand.Instanciate(() => _IMusicPlayer.Volume += 0.1);
            VolumeDown = RelayCommand.Instanciate(() => _IMusicPlayer.Volume -= 0.1);
            Like = RelayCommand.Instanciate(DoLike);
            SeeNextAlbum = _PlayedAlbums.Next;
            SeePreviousAlbum = _PlayedAlbums.Previous;
            PlayAlbum = RelayCommand.Instanciate(DoPlayAlbum);

            //call  to activate listeners
            var pa = this.PlayingAlbum;
        }
Пример #35
0
        public void NowPlayingShouldNotChangeIfSongIsAlreadyPlaying(string songTitle1, string songTitle2)
        {
            player = new MusicPlayer(mediaDb, soundDb);
            mediaDb.OpenConnection();
            player.LoadSongs(songTitle1);
            player.LoadSongs(songTitle2);
            mediaDb.CloseConnection();

            // Spelar Stairway to heaven
            player.Play();

            var playing = player.NowPlaying();

            StringAssert.Contains(songTitle1, player.NowPlaying(), "Den borde ju spelas");


            player.Play();

            playing = player.NowPlaying();

            StringAssert.Contains(songTitle1, player.NowPlaying(), "Den borde ju spelas");

            player.Stop();
        }
 public CannotQueueTrackDisabledProviderQueueRule(IMusicPlayer musicPlayer)
 {
     this.musicPlayer = musicPlayer;
 }
 public CannotQueueTrackAlreadyPlayingQueueRule(IMusicPlayer musicPlayer)
 {
     this.musicPlayer = musicPlayer;
 }
 public MusicPlayerInstance(IMusicPlayer musicService)
 {
     Player = musicService;
     instance = this;
 }
Пример #39
0
        public void LoadFile(string file)
        {
            if(File.Exists(file))
            {
                if(m_MusicPlayer != null)
                {
                    m_MusicPlayer.Dispose();
                    m_MusicPlayer = null;
                }

                using(var fileStream = File.OpenRead(file))
                {
                    m_MusicPlayer = new IrrKlangMusicPlayer(file) { Volume = GetConvertedFloatValue(Volume) };
                    playerContainer.Text = string.Format("Ambient Track - [{0}]",
                                                         Path.GetFileNameWithoutExtension(file));

                    m_OpenFileDialog.FileName = file;
                }
            }
        }
Пример #40
0
 public Jukebox(IEnumerable<string> playlist, IMusicPlayer player)
 {
     _playlist = playlist;
     _player = player;
 }
Пример #41
0
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if(m_MusicPlayer != null)
            {
                m_MusicPlayer.Dispose();
                m_MusicPlayer = null;
            }

            if(m_ProgressTimer != null)
            {
                m_ProgressTimer.Stop();
                m_ProgressTimer.Dispose();
                m_ProgressTimer = null;
            }

            if(m_OpenFileDialog != null)
            {
                m_OpenFileDialog.Dispose();
                m_OpenFileDialog = null;
            }
        }