public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Android.OS.Bundle savedInstanceState) { View rootView = inflater.Inflate(Resource.Layout.media_player, container, false); _btnPrevious = rootView.FindViewById <Button>(Resource.Id.btnPrevious); _btnPrevious.Enabled = false; _btnPrevious.Click += OnClick; _btnNext = rootView.FindViewById <Button>(Resource.Id.btnNext); _btnNext.Enabled = false; _btnNext.Click += OnClick; _btnPlay = rootView.FindViewById <Button>(Resource.Id.btnPlay); _btnPlay.Enabled = true; _btnPlay.Click += OnClick; _queueAdapter = new QueueAdapter(Activity); var listView = rootView.FindViewById <ListView>(Resource.Id.list_view); listView.Adapter = _queueAdapter; listView.Focusable = true; listView.ItemClick += (sender, e) => { var item = _queueAdapter.GetItem(e.Position); _transportControls.SkipToQueueItem(item.QueueId); }; _mediaBrowser = new MediaBrowser(Activity, new ComponentName(Activity, Java.Lang.Class.FromType(typeof(MusicService))), _connectionCallback, null); return(rootView); }
public ChocHelper(MediaBrowser.Library.Item Item) { this.OverviewTimer = new Timer(); this.CurrentItem = Item; this.setupHelper(); Instance = this; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.Inflate(Resource.Layout.media_player, container, false); _browserAdapter = new BrowseAdapter(Activity); View controls = rootView.FindViewById(Resource.Id.media_player); controls.Visibility = ViewStates.Gone; var listView = rootView.FindViewById <ListView>(Resource.Id.list_view); listView.Adapter = _browserAdapter; listView.ItemClick += (sender, e) => { MediaBrowser.MediaItem item = _browserAdapter.GetItem(e.Position); var listener = (IMediaSelected)Activity; listener.OnMediaItemSelected(item); }; Bundle args = Arguments; _mediaId = args.GetString(ArgMediaId, null); _mediaBrowser = new MediaBrowser(Activity, new ComponentName(Activity, Java.Lang.Class.FromType(typeof(MusicService))), _connectionCallback, null); _subscriptionCallback.OnChildrenLoadedImpl = (parentId, children) => { _browserAdapter.Clear(); _browserAdapter.NotifyDataSetInvalidated(); foreach (MediaBrowser.MediaItem item in children) { _browserAdapter.Add(item); } _browserAdapter.NotifyDataSetChanged(); }; _subscriptionCallback.OnErrorImpl = (id) => Toast.MakeText(Activity, "Error Loading Media", ToastLength.Long).Show(); _connectionCallback.OnConnectedImpl = () => { Logger.Debug($"OnConnectedImpl: session token {_mediaBrowser.SessionToken}"); if (string.IsNullOrEmpty(_mediaId)) { _mediaId = _mediaBrowser.Root; } _mediaBrowser.Subscribe(_mediaId, _subscriptionCallback); if (_mediaBrowser.SessionToken == null) { throw new ArgumentNullException("No Session token"); } var mediaController = new Android.Media.Session.MediaController(Activity, _mediaBrowser.SessionToken); Activity.MediaController = mediaController; }; _connectionCallback.OnConnectionFailedImpl = () => Logger.Debug("OnConnectionFailedImpl"); _connectionCallback.OnConnectionSuspendedImpl = () => { Logger.Debug("OnConnectionSuspendedImpl"); Activity.MediaController = null; }; return(rootView); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Android.OS.Bundle savedInstanceState) { var rootView = inflater.Inflate(Resource.Layout.fragment_list, container, false); skipPrevious = rootView.FindViewById <ImageButton> (Resource.Id.skip_previous); skipPrevious.Enabled = false; skipPrevious.Click += OnClick; skipNext = rootView.FindViewById <ImageButton> (Resource.Id.skip_next); skipNext.Enabled = false; skipNext.Click += OnClick; playPause = rootView.FindViewById <ImageButton> (Resource.Id.play_pause); playPause.Enabled = true; playPause.Click += OnClick; queueAdapter = new QueueAdapter(Activity); var listView = rootView.FindViewById <ListView> (Resource.Id.list_view); listView.Adapter = queueAdapter; listView.Focusable = true; listView.ItemClick += (sender, e) => { var item = queueAdapter.GetItem(e.Position); transportControls.SkipToQueueItem(item.QueueId); }; mediaBrowser = new MediaBrowser(Activity, new ComponentName(Activity, Java.Lang.Class.FromType(typeof(MusicService))), connectionCallback, null); return(rootView); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var rootView = inflater.Inflate(Resource.Layout.fragment_list, container, false); browserAdapter = new BrowseAdapter(Activity); var controls = rootView.FindViewById(Resource.Id.controls); controls.Visibility = ViewStates.Gone; var listView = rootView.FindViewById <ListView> (Resource.Id.list_view); listView.Adapter = browserAdapter; listView.ItemClick += (sender, e) => { var item = browserAdapter.GetItem(e.Position); try { var listener = (IFragmentDataHelper)Activity; listener.OnMediaItemSelected(item); } catch (InvalidCastException ex) { Log.Error(Tag, "Exception trying to cast to FragmentDataHelper", ex); } }; var args = Arguments; mediaId = args.GetString(ArgMediaId, null); mediaBrowser = new MediaBrowser(Activity, new ComponentName(Activity, Java.Lang.Class.FromType(typeof(MusicService))), connectionCallback, null); subscriptionCallback.OnChildrenLoadedImpl = (parentId, children) => { browserAdapter.Clear(); browserAdapter.NotifyDataSetInvalidated(); foreach (MediaBrowser.MediaItem item in children) { browserAdapter.Add(item); } browserAdapter.NotifyDataSetChanged(); }; subscriptionCallback.OnErrorImpl = (id) => Toast.MakeText(Activity, "Error Loading Media", ToastLength.Long).Show(); connectionCallback.OnConnectedImpl = () => { LogHelper.Debug(Tag, "onConnected: session token " + mediaBrowser.SessionToken); if (mediaId == null) { mediaId = mediaBrowser.Root; } mediaBrowser.Subscribe(mediaId, subscriptionCallback); if (mediaBrowser.SessionToken == null) { throw new ArgumentNullException("No Session token"); } var mediaController = new Android.Media.Session.MediaController(Activity, mediaBrowser.SessionToken); Activity.MediaController = mediaController; }; connectionCallback.OnConnectionFailedImpl = () => LogHelper.Debug(Tag, "onConnectionFailed"); connectionCallback.OnConnectionSuspendedImpl = () => { LogHelper.Debug(Tag, "onConnectionSuspended"); Activity.MediaController = null; }; return(rootView); }
public void Initialize() { _instance = Activator.CreateInstance<GoProMediaBrowser>(); (_instance as IGeneralBrowser).Initialize(null, null); var browserType = _instance.GetType(); var method=browserType.GetMethod("Parse", BindingFlags.NonPublic | BindingFlags.Instance); _parseDelegate= (ParseDelegate)method.CreateDelegate(typeof(ParseDelegate), _instance); }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { if (RealMovie == null) RealMovie = (Movie)Kernel.Instance.ItemRepository.RetrieveItem(RealMovieID); MediaBrowser.Library.Logging.Logger.ReportInfo("Refreshing trailer for " + RealMovie.Name); this.PrimaryImagePath = Util.CloneImage(RealMovie.PrimaryImagePath); this.BackdropImagePaths = new List<string>(); if (RealMovie.BackdropImagePaths != null) { foreach (string backdrop in RealMovie.BackdropImagePaths) { this.BackdropImagePaths.Add(backdrop); } } if ((options & MetadataRefreshOptions.Force) == MetadataRefreshOptions.Force) { var images = new List<MediaBrowser.Library.ImageManagement.LibraryImage>(); images.Add(PrimaryImage); images.AddRange(BackdropImages); foreach (var image in images) { try { if (image != null) { image.ClearLocalImages(); MediaBrowser.Library.Factories.LibraryImageFactory.Instance.ClearCache(image.Path); } } catch (Exception ex) { MediaBrowser.Library.Logging.Logger.ReportException("Failed to clear local image (its probably in use)", ex); } } //changed = RealMovie.RefreshMetadata(options); } this.Overview = RealMovie.Overview; this.ProductionYear = RealMovie.ProductionYear; this.RunningTime = RealMovie.RunningTime; this.Actors = RealMovie.Actors; this.Directors = RealMovie.Directors; this.Name = RealMovie.Name + " " + Plugin.PluginOptions.Instance.TrailerSuffix; this.SortName = RealMovie.SortName; this.Studios = RealMovie.Studios; this.Path = RealMovie.TrailerFiles.First(); this.MediaType = MediaTypeResolver.DetermineType(Path); this.MediaInfo = RealMovie.MediaInfo; this.DateCreated = System.IO.File.GetCreationTime(this.Path); this.DisplayMediaType = "Trailer"; Plugin.proxy.SetTrailerInfo(this); Kernel.Instance.ItemRepository.SaveItem(this); return true; }
public void Initialize() { _instance = Activator.CreateInstance <GoProMediaBrowser>(); (_instance as IGeneralBrowser).Initialize(null, null); var browserType = _instance.GetType(); var method = browserType.GetMethod("Parse", BindingFlags.NonPublic | BindingFlags.Instance); _parseDelegate = (ParseDelegate)method.CreateDelegate(typeof(ParseDelegate), _instance); }
public CdsBrowserForm() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // m_Roots = ContainerDiscovery.GetInstance(); this.m_Browser = new MediaBrowser(); this.m_Roots.AllRoots.OnContainerChanged += new CpRootContainer.Delegate_OnContainerChanged(OnAllRootsContainerChanged); this.m_Browser.OnRefreshComplete += new MediaBrowser.Delegate_ContentFound(this.Sink_RefreshComplete); this.PopulateContextDropDown(); this.comboBoxContext.SelectedIndex = 0; }
public void OnConnected() { mediaId = MediaBrowser.Root; // Unsubscribing before subscribing is required if this mediaId already has a subscriber // on this MediaBrowser instance. Subscribing to an already subscribed mediaId will replace // the callback, but won't trigger the initial callback.onChildrenLoaded. // // This is temporary: A bug is being fixed that will make subscribe // consistently call onChildrenLoaded initially, no matter if it is replacing an existing // subscriber or not. Currently this only happens if the mediaID has no previous // subscriber or if the media content changes on the service side, so we need to // unsubscribe first. MediaBrowser.Unsubscribe(mediaId); MediaBrowser.Subscribe(mediaId, subscriptionCallback); // Add MediaController callback so we can redraw the list when metadata changes: SupportMediaController?.RegisterCallback(mediaControllerCallback); }
public MediaBrowserFilterConverter(MediaBrowser parent) { this.parent = parent; }
public bool Init() { if (MediaBrowser == null) { MediaControllerCallback = new MediaControllerCallback(); MediaBrowserSubscriptionCallback = new MediaBrowserSubscriptionCallback(); // Connect a media browser just to get the media session token. There are other ways // this can be done, for example by sharing the session token directly. TaskCompletionSource <bool> tcs = new TaskCompletionSource <bool>(); MediaBrowserConnectionCallback = new MediaBrowserConnectionCallback { OnConnectedImpl = () => { MediaControllerCallback.OnMetadataChangedImpl = metadata => { var test = metadata; }; MediaControllerCallback.OnPlaybackStateChangedImpl = state => { MediaManager.OnStateChanged(this, new StateChangedEventArgs(state.ToMediaPlayerState())); }; MediaControllerCallback.OnSessionEventChangedImpl = (string @event, Bundle extras) => { //Do nothing for now }; MediaController = new MediaControllerCompat(Context, MediaBrowser.SessionToken); MediaController.RegisterCallback(MediaControllerCallback); if (Context is Activity activity) { MediaControllerCompat.SetMediaController(activity, MediaController); } // Sync existing MediaSession state to the UI. // The first time these events are fired, the metadata and playbackstate are null. MediaControllerCallback.OnMetadataChanged(MediaController.Metadata); MediaControllerCallback.OnPlaybackStateChanged(MediaController.PlaybackState); MediaBrowser.Subscribe(MediaBrowser.Root, MediaBrowserSubscriptionCallback); IsInitialized = true; tcs.SetResult(IsInitialized); }, OnConnectionFailedImpl = () => { IsInitialized = false; tcs.SetResult(IsInitialized); } }; MediaBrowser = new MediaBrowserCompat(Context, new ComponentName( Context, ServiceType), MediaBrowserConnectionCallback, null); } if (!IsInitialized) { MediaBrowser.Connect(); IsInitialized = true; } return(IsInitialized); }
public void TestAddLocalDevice() { Console.WriteLine("Test to add a local upnp device."); UPnP u = new UPnP(); u.SetupSockets(); MediaBrowser mb = new MediaBrowser(); bool wait = true; // wait = false; mb.RootDevice.FriendlyName = "vpMediaTestserver"; mb.BrowseRequestReceived += delegate(MediaBrowser media_browser,string object_id,string browse_flag,int starting_index,int requested_count,string sort_criteria) { Console.WriteLine("Browse request received: \nobject_id: "+object_id+"\nbrowse_flag: "+browse_flag+"\nstarting_index: "+starting_index+"\nrequested_count: "+requested_count+"\nsort_criteria: "+sort_criteria+"\n"); MediaBrowser.BrowseResult result = new MediaBrowser.BrowseResult(); if (object_id == "0") { result.TotalMatches = 3; result.AddFolder("Queue", "queue", "0", true, false, 3, "UNKNOWN", -1); result.AddItem("test item", "pez2001", "http://www.voyagerproject.de/stuff/phat_sweet_drill_mix.wav.mp3", "audio/mpeg", "test", "0", false, -1, "UNKNOWN"); result.AddItem("test item 2", "pez2001", "http://www.voyagerproject.org/wp-content/uploads/2006/05/treiwund%20+%20graf%20contra2.mp3", "audio/mpeg", "test", "0", false, -1, "UNKNOWN"); } else if (object_id == "queue") { result.TotalMatches = 3; result.AddFolder("Root", "0", "0", true, false, 3, "UNKNOWN", -1); result.AddItem("test item b", "pez2001", "http://www.voyagerproject.de/stuff/phat_sweet_drill_mix.wav.mp3", "audio/mpeg", "test", "0", false, -1, "UNKNOWN"); result.AddItem("test item b 2", "pez2001", "http://www.voyagerproject.org/wp-content/uploads/2006/05/treiwund%20+%20graf%20contra2.mp3", "audio/mpeg", "test", "0", false, -1, "UNKNOWN"); } return (result); }; u.AddLocalDevice(mb); Console.WriteLine("Waiting for data"); DateTime start = DateTime.Now; while (wait) { if (DateTime.Now - start > new TimeSpan(0, 0, 60)) { Console.WriteLine(""); Console.WriteLine("Operation took too long"); wait = false; Assert.Fail("Operation took too long"); } Console.Write("."); Thread.Sleep(250); } Console.WriteLine("UPnP Local Device Add Test successful."); u.CloseSockets(); }
public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Android.OS.Bundle savedInstanceState) { var rootView = inflater.Inflate (Resource.Layout.fragment_list, container, false); skipPrevious = rootView.FindViewById<ImageButton> (Resource.Id.skip_previous); skipPrevious.Enabled = false; skipPrevious.SetOnClickListener (buttonListener); skipNext = rootView.FindViewById<ImageButton> (Resource.Id.skip_next); skipNext.Enabled = false; skipNext.SetOnClickListener (buttonListener); playPause = rootView.FindViewById<ImageButton> (Resource.Id.play_pause); playPause.Enabled = true; playPause.SetOnClickListener (buttonListener); queueAdapter = new QueueAdapter (Activity); var listViewClickListener = new ListViewClickListener (); listViewClickListener.OnItemClickImpl = (parent, view, position, id) => { var item = queueAdapter.GetItem (position); transportControls.SkipToQueueItem (item.QueueId); }; var listView = rootView.FindViewById<ListView> (Resource.Id.list_view); listView.Adapter = queueAdapter; listView.Focusable = true; listView.OnItemClickListener = listViewClickListener; mediaBrowser = new MediaBrowser (Activity, new ComponentName (Activity, Java.Lang.Class.FromType (typeof(MusicService))), connectionCallback, null); return rootView; }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { // do nothing metadata is assigned externally. return false; }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { return false; // do nothing .. we control the metadata ... providers do nothing }
private void Sink_RefreshComplete(MediaBrowser sender, IUPnPMedia[] added) { this.ClearAndFillMediaList(); }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { // do nothing // Metadata is assigned outside the provider framework return false; }
public void InstallPlugin(IPlugin plugin, MediaBrowser.Library.Network.WebDownload.PluginInstallUpdateCB updateCB, MediaBrowser.Library.Network.WebDownload.PluginInstallFinishCB doneCB, MediaBrowser.Library.Network.WebDownload.PluginInstallErrorCB errorCB) { //taking this check out for now - it's just too cumbersome to have to re-compile all plug-ins to change this -ebr //if (plugin.TestedMBVersion < Kernel.Instance.Version) { // var dlgResult = MessageBox.Show("Warning - " + plugin.Name + " has not been tested with your version of MediaBrowser. \n\nInstall anyway?", "Version not Tested", MessageBoxButton.YesNo); // if (dlgResult == MessageBoxResult.No) { // doneCB(); // return; // } //} if (BackupPlugin(plugin)) Logger.ReportInfo("Plugin "+plugin.Name+" v"+plugin.Version+" backed up."); if (plugin is RemotePlugin) { try { Kernel.Instance.InstallPlugin((plugin as RemotePlugin).BaseUrl + "\\" + (plugin as RemotePlugin).SourceFilename, plugin.Filename, updateCB, doneCB, errorCB); } catch (Exception ex) { MessageBox.Show("Cannot Install Plugin. If MediaBrowser is running, please close it and try again.\n" + ex.Message, "Install Error"); doneCB(); } } else { var local = plugin as Plugin; Debug.Assert(plugin != null); try { Kernel.Instance.InstallPlugin(local.Filename, null, null, null); } catch (Exception ex) { MessageBox.Show("Cannot Install Plugin. If MediaBrowser is running, please close it and try again.\n" + ex.Message, "Install Error"); doneCB(); } } }
public void SetTrailerInfo(MediaBrowser.Library.Entities.Show trailer) { TrailerInfo trailerInfo = new TrailerInfo(TrailerType.Local, trailer.Path.ToLower(), trailer.ParentalRating, trailer.Genres); using (ChannelFactory<ITrailerProxy> factory = new ChannelFactory<ITrailerProxy>(new NetNamedPipeBinding(), "net.pipe://localhost/mbtrailers")) { ITrailerProxy proxyServer = factory.CreateChannel(); try { proxyServer.SetTrailerInfo(trailerInfo); } catch (Exception e) { Logger.ReportException("Error setting trailer info", e); Logger.ReportError("Inner Exception: " + e.InnerException.Message); } finally { (proxyServer as ICommunicationObject).Close(); } } }
public void InstallPlugin(IPlugin plugin, MediaBrowser.Library.Network.WebDownload.PluginInstallUpdateCB updateCB, MediaBrowser.Library.Network.WebDownload.PluginInstallFinishCB doneCB, MediaBrowser.Library.Network.WebDownload.PluginInstallErrorCB errorCB) { if (BackupPlugin(plugin)) Logger.ReportInfo("Plugin "+plugin.Name+" v"+plugin.Version+" backed up."); if (plugin is RemotePlugin) { try { Kernel.Instance.InstallPlugin((plugin as RemotePlugin).SourceFilename, plugin.Filename, updateCB, doneCB, errorCB); } catch (Exception ex) { MessageBox.Show("Cannot Install Plugin. If MediaBrowser is running, please close it and try again.\n" + ex.Message, "Install Error"); doneCB(); } } else { var local = plugin as Plugin; Debug.Assert(plugin != null); try { Kernel.Instance.InstallPlugin(local.Filename, null, null, null); } catch (Exception ex) { MessageBox.Show("Cannot Install Plugin. If MediaBrowser is running, please close it and try again.\n" + ex.Message, "Install Error"); doneCB(); } } }
public void Init(MediaBrowser.Library.Kernel kernel) { }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { return false; }
public PatternsLogger(MediaBrowser.Model.Logging.ILogger logger) { _logger = logger; }
public void TestAnnounceDevice() { Console.WriteLine("Test to announce an upnp device."); UPnP u = new UPnP(); u.SetupSockets(); MediaBrowser mb = new MediaBrowser(); bool wait = true; // wait = false; u.AnnounceDevice(mb,true); Console.WriteLine("Waiting for data"); DateTime start = DateTime.Now; while (wait) { if (DateTime.Now - start > new TimeSpan(0, 0, 60)) { Console.WriteLine(""); Console.WriteLine("Operation took too long"); wait = false; Assert.Fail("Operation took too long"); } Console.Write("."); Thread.Sleep(250); } Console.WriteLine("UPnP Device Announcing Test successful."); u.CloseSockets(); }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { bool changed = base.RefreshMetadata(options); if (this.Series != null && this.Series.BannerImage != null && (options & MediaBrowser.Library.Metadata.MetadataRefreshOptions.Force) == MediaBrowser.Library.Metadata.MetadataRefreshOptions.Force) { //we cleared our our series banner image - re-cache it var ignore = this.Series.BannerImage.GetLocalImagePath(); } return changed; }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { // metadata should not be acquired through the provider framework. // its all done during item validation return false; }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { return shadowItem.RefreshMetadata(options); }
public override bool RefreshMetadata(MediaBrowser.Library.Metadata.MetadataRefreshOptions options) { // no metadata for itunes folder please return false; }