private void UpdateCache(Transform transform) { RendererItem item; if (!this.cache.TryGetValue(transform, out item)) { item = new RendererItem(); var renderer = transform.GetComponent <Renderer>(); if (renderer != null) { var record = transform.GetComponent <UI3DDisplayRecord>(); record = renderer.gameObject.AddComponent <UI3DDisplayRecord>(); record.hideFlags = HideFlags.DontSave; record.Initialize(renderer, this); record.gameObject.layer = this.DisplayLayer; item.Renderer = renderer; item.Record = record; } this.cache.Add(transform, item); } item.IsExisted = true; for (int i = 0; i < transform.childCount; ++i) { var child = transform.GetChild(i); this.UpdateCache(child); } }
async void OnOnItemAdded(RendererItem rendererItem) { LogHelper.Log("Found new rendererItem " + rendererItem.name() + " can render audio " + rendererItem.canRenderAudio() + " can render video " + rendererItem.canRenderVideo()); RendererItems.Add(rendererItem); await DispatchHelper.InvokeInUIThread(CoreDispatcherPriority.Normal, () => OnPropertyChanged(nameof(HasRenderer))); }
private void renderertoolStripComboBox_SelectedIndexChanged(object sender, EventArgs e) { // Change the renderer Assembly assembly = Assembly.GetAssembly(typeof(ImageListView)); RendererItem item = (RendererItem)renderertoolStripComboBox.SelectedItem; ImageListView.ImageListViewRenderer renderer = assembly.CreateInstance(item.Type.FullName) as ImageListView.ImageListViewRenderer; imageListView1.SetRenderer(renderer); imageListView1.Focus(); }
public bool StartCasting(Uri stream, RendererItem rendererItem) { Console.WriteLine($"Starting cast with stream: {stream} on renderer {rendererItem.Name} or type {rendererItem.Type}"); using var media = new Media(_libVLC, stream); using var mediaPlayer = new MediaPlayer(_libVLC); mediaPlayer.SetRenderer(rendererItem); // start the playback return(mediaPlayer.Play(media)); }
private void RendererBox_SelectedIndexChanged(object sender, EventArgs e) { _selectedItem = RendererBox.SelectedItem as RendererItem; btnRemove.Enabled = btnUp.Enabled = btnDown.Enabled = btnProperties.Enabled = _selectedItem != null; if (_selectedItem != null && _selectedItem.LabelRenderer is IScaledependent) { propertyGridScaleDependent.SelectedObject = new SceleDependetent((IScaledependent)_selectedItem.LabelRenderer); } }
async void OnOnRendererItemDeleted(RendererItem rendererItem) { var match = RendererItems.FirstOrDefault(item => item.name().Equals(rendererItem.name())); if (match != null) { RendererItems.Remove(match); } if (IsRendererSet && !RendererItems.Any()) { DisconnectRenderer(); } await DispatchHelper.InvokeInUIThread(CoreDispatcherPriority.Normal, () => OnPropertyChanged(nameof(HasRenderer))); }
public void SetNetworkRenderer(IRendererItem renderItem) { RendererItem item = renderItem as RendererItem; if (item == null) { throw new InvalidOperationException("renderItem must be derivative of RenderItem type"); } int res = LibVlcMethods.libvlc_media_player_set_renderer(m_hMediaPlayer, item.Pointer); if (res == -1) { throw new LibVlcException("Failed to set network renderer"); } }
private async Task Render(RendererItem item) { Device.BeginInvokeOnMainThread(() => { // create new media using (var media = new Media(_viewModel.LibVLC, new Uri(_channel.Url))) { // create the mediaplayer _mediaPlayer = new MediaPlayer(_viewModel.LibVLC); _mediaPlayer.SetRenderer(item); _mediaPlayer.Play(media); } _castingStarted = true; }); MessagingCenter.Send <BaseViewModel, ChannelItem>(_viewModel, BaseViewModel.CastingStarted, _channel); await Navigation.PopAsync(); }
private void ShowHideLegend(RendererItem item) { if (_renderer == null) { return; } int index = RendererBox.Items.IndexOf(item); if (index == -1) { return; } if (!item.ShowLegend) { for (int i = index + 1; i < RendererBox.Items.Count; i++) { if (RendererBox.Items[i] is RendererItem) { break; } RendererBox.Items.RemoveAt(i); i--; } } else { if (item.LabelRenderer is ILegendGroup) { ILegendGroup lGroup = item.LabelRenderer as ILegendGroup; for (int i = 0; i < lGroup.LegendItemCount; i++) { RendererBox.Items.Insert(index + 1, new LegendItem(lGroup.LegendItem(i))); } } } }
protected override void MediaPlayerEventOccured(ref libvlc_event_t libvlc_event, IntPtr userData) { switch (libvlc_event.type) { case libvlc_event_e.libvlc_RendererDiscovererItemAdded: if (m_rendererDiscovererItemAdded != null) { var item = libvlc_event.MediaDescriptor.renderer_discoverer_item_added.item; RendererItem renderItem = new RendererItem(item); m_rendererDiscovererItemAdded(this, new RendererItemChanged(renderItem)); } break; case libvlc_event_e.libvlc_RendererDiscovererItemDeleted: if (m_rendererDiscovererItemDeleted != null) { var item = libvlc_event.MediaDescriptor.renderer_discoverer_item_deleted.item; RendererItem renderItem = new RendererItem(item); m_rendererDiscovererItemDeleted(this, new RendererItemChanged(renderItem)); } break; } }
internal RendererDiscovererItemDeletedEventArgs(RendererItem rendererItem) { RendererItem = rendererItem; }
public VlcMediaRenderer(RendererItem rendererItem) { _rendererItem = rendererItem; }