public IPlayer GetPlayer(MediaItem mediaItem) { string mimeType; string title; if (!mediaItem.GetPlayData(out mimeType, out title)) { return(null); } IResourceLocator locator = mediaItem.GetResourceLocator(); if (InputSourceFactory.CanPlay(locator, mimeType)) { BassPlayer player = new BassPlayer(_pluginDirectory); try { player.SetMediaItemLocator(locator, mimeType, title); } catch (Exception e) { ServiceRegistration.Get <ILogger>().Warn("BassPlayerPlugin: Error playing media item '{0}'", e, locator); player.Dispose(); return(null); } return(player); } return(null); }
/// <summary> /// Update external state and tell MP that the current media item ended. /// </summary> public void PlaybackEnded_Async() { BassPlayer player = _player; if (player == null) return; EnqueueWorkItem(new WorkItem(new WorkItemDelegate(player.PlaybackEnded))); }
/// <summary> /// Make MP provide the next audio item. /// </summary> public void RequestNextMediaItem_Async() { BassPlayer player = _player; if (player == null) return; EnqueueWorkItem(new WorkItem(new WorkItemDelegate(player.RequestNextMediaItemFromSystem))); }
/// <summary> /// Initializes a new instance of the BASS player controller. /// </summary> /// <param name="player">BASS player instance which contains this controller instance.</param> /// <param name="playerMainDirectory">Directory where the BASS player is located. Plugins will be searched relative /// to this directory.</param> public Controller(BassPlayer player, string playerMainDirectory) { Log.Debug("Initializing BASS controller"); _player = player; _bassLibraryManager = BassLibraryManager.Get(Path.Combine(playerMainDirectory, InternalSettings.PluginsPath)); _playbackProcessor = new PlaybackProcessor(this); _outputDeviceManager = new OutputDeviceManager(this); _mainThreadTerminated = false; _workItemQueue = new WorkItemQueue(); _playerThread = new Thread(PlayerThreadMain) {Name = "BassPlay"}; _playerThread.Start(); SetVolume_Async(100); }
public IPlayer GetPlayer(MediaItem mediaItem) { BassPlayer player = new BassPlayer(); try { if (!player.SetMediaItem(mediaItem)) { player.Dispose(); return(null); } } catch (Exception e) { ServiceRegistration.Get <ILogger>().Warn("BassPlayerPlugin: Error playing media item '{0}'", e, mediaItem.ToString()); player.Dispose(); return(null); } return(player); }
/// <summary> /// Initializes a new instance of the BASS player controller. /// </summary> /// <param name="player">BASS player instance which contains this controller instance.</param> public Controller(BassPlayer player) { Log.Debug("Initializing BASS controller"); _player = player; _bassLibraryManager = BassLibraryManager.Get(); _playbackProcessor = new PlaybackProcessor(this); _outputDeviceManager = new OutputDeviceManager(this); _mainThreadTerminated = false; _workItemQueue = new WorkItemQueue(); _playerThread = new Thread(PlayerThreadMain) { Name = "BassPlay" }; _playerThread.Start(); SetVolume_Async(100); }
public IPlayer GetPlayer(MediaItem mediaItem) { string mimeType; string title; if (!mediaItem.GetPlayData(out mimeType, out title)) return null; IResourceLocator locator = mediaItem.GetResourceLocator(); if (InputSourceFactory.CanPlay(locator, mimeType)) { BassPlayer player = new BassPlayer(); try { player.SetMediaItemLocator(locator, mimeType, title); } catch (Exception e) { ServiceRegistration.Get<ILogger>().Warn("BassPlayerPlugin: Error playing media item '{0}'", e, locator); player.Dispose(); return null; } return player; } return null; }
/// <summary> /// Initializes a new instance of the BASS player controller. /// </summary> /// <param name="player">BASS player instance which contains this controller instance.</param> public Controller(BassPlayer player) { Log.Debug("Initializing BASS controller"); _player = player; _bassLibraryManager = BassLibraryManager.Get(); _playbackProcessor = new PlaybackProcessor(this); _outputDeviceManager = new OutputDeviceManager(this); _mainThreadTerminated = false; _workItemQueue = new WorkItemQueue(); _playerThread = new Thread(PlayerThreadMain) {Name = "BassPlay"}; _playerThread.Start(); SetVolume_Async(100); }