/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="replayPath">Pfad zu einer VCR.NET Aufzeichnungsdatei.</param> public VCRAdaptor(IViewerSite main, string replayPath) : base(main) { // Connect to alternate interfaces ChannelInfo = (IChannelInfo)main; StreamInfo = (IStreamInfo)main; // Remember m_Profile = RemoteInfo.VCRProfile; // Use default if (string.IsNullOrEmpty(m_Profile)) { m_Profile = "*"; } // Construct Url Uri uri = RemoteInfo.ServerUri; // Connect to stream Connect(StreamInfo.BroadcastIP, StreamInfo.BroadcastPort, uri.Host); // Check startup mode if (string.IsNullOrEmpty(replayPath)) { // Special if LIVE is active var current = VCRNETRestProxy.GetFirstActivityForProfile(EndPoint, Profile); if (current != null) { if (!current.IsActive) { current = null; } else if ("LIVE".Equals(current.name)) { current = null; } } // Start correct access module if (current == null) { StartLIVE(true); } else { StartWatch(null, true); } } else { // Start remote file replay StartReplay(replayPath, null, null, true); } }
public ProgramSettings( IViewerSite viewer ) { // Remember m_Viewer = viewer; // Load picture parameters if (null != m_Viewer) m_Initial = m_Viewer.PictureParameters; // Set up self InitializeComponent(); }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="path">Voller Pfad zu einer Datei.</param> public FileAdaptor( IViewerSite main, string path ) : base( main ) { // Connect to file player SetAccessor( new FileAccessor( path ) ); // Finished OnConnected(); // Configure keys RegisterReplayKeys( main, this ); }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="endpoint">Eine TCP/IP Adresse, an der ein /// Transport Stream entgegen genommen werden kann.</param> public SlaveAdaptor( IViewerSite main, string endpoint ) : base( main ) { // Split string[] parts = endpoint.Split( ':' ); // Connect to stream Connect( parts[0], ushort.Parse( parts[1] ), null ); // No control needed DisconnectWaiter(); }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="endpoint">Eine TCP/IP Adresse, an der ein /// Transport Stream entgegen genommen werden kann.</param> public SlaveAdaptor(IViewerSite main, string endpoint) : base(main) { // Split string[] parts = endpoint.Split(':'); // Connect to stream Connect(parts[0], ushort.Parse(parts[1]), null); // No control needed DisconnectWaiter(); }
/// <summary> /// Zeigt die Konfiguration der Senderverwaltung, nachdem der Vollbildmodus /// deaktiviert wurde. /// </summary> private void ShowFavoriteSettings() { // Show cursor using (ShowCursor()) { // Attach to viewer IViewerSite viewer = (IViewerSite)theViewer; // Show configuration dialog viewer.FavoriteManager.ShowConfiguration(this); } }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="path">Voller Pfad zu einer Datei.</param> public FileAdaptor(IViewerSite main, string path) : base(main) { // Connect to file player SetAccessor(new FileAccessor(path)); // Finished OnConnected(); // Configure keys RegisterReplayKeys(main, this); }
public ProgramSettings(IViewerSite viewer) { // Remember m_Viewer = viewer; // Load picture parameters if (null != m_Viewer) { m_Initial = m_Viewer.PictureParameters; } // Set up self InitializeComponent(); }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="streamIndex">Teilaufzeichnung, die betrachtet werden soll.</param> /// <param name="timeshift">Gesetzt, wenn der Timeshift Modus aktiviert werden soll.</param> public VCRAdaptor(IViewerSite main, int streamIndex, bool timeshift) : base(main) { // Connect to alternate interfaces ChannelInfo = (IChannelInfo)main; StreamInfo = (IStreamInfo)main; // Remember m_Profile = RemoteInfo.VCRProfile; // Use default if (string.IsNullOrEmpty(m_Profile)) { m_Profile = "*"; } // Construct Url var uri = RemoteInfo.ServerUri; // Connect to stream Connect(StreamInfo.BroadcastIP, StreamInfo.BroadcastPort, uri.Host); // Find all current activities var activities = VCRNETRestProxy.GetActivitiesForProfile(EndPoint, Profile); if (activities.Count < 1) { StartLIVE(true); } else { // Find the activity var current = activities.FirstOrDefault(activity => activity.streamIndex == streamIndex); if (current == null) { StartWatch(null, true); } else if (timeshift && string.IsNullOrEmpty(StreamInfo.BroadcastIP) && (current.files.Length > 0)) { StartReplay(current.files[0], current.name, current, true); } else { StartWatch(string.Format("dvbnet:{0}", streamIndex), true); } } }
/// <summary> /// Erzeugte eine neue Zugriffsinstanz. /// </summary> /// <param name="profile">Zu verwendende DVB.NET Hardware Abstraktion.</param> /// <param name="main">Zugehörige Anwendung.</param> public DeviceAdpator(Profile profile, IViewerSite main) : base(main) { // Remember Profile = profile; // Attach to the device Device = HardwareManager.OpenHardware(Profile); // Create m_TTXConnector = new TTXStreamConsumer(this); // Load alternate interfaces GeneralInfo = (IGeneralInfo)main; ChannelInfo = (IChannelInfo)main; StreamInfo = (IStreamInfo)main; LocalInfo = (ILocalInfo)main; // Initialize core - DirectShow Graph feed directly from a Transport Stream SetAccessor(new AudioVideoAccessor()); }
/// <summary> /// Konfiguriert die Tastatur für das Abspielen einer Datei. /// </summary> /// <param name="viewer">Die zugehörige Anzeigeeinheit.</param> /// <param name="replay">Die Komponente, die für das Auslesen der Datei zuständig ist.</param> public static void RegisterReplayKeys(IViewerSite viewer, IFileReplay replay) { // Register all keys to move in file viewer.SetKeyHandler(Keys.Subtract, () => replay.MovePosition(-0.001)); viewer.SetKeyHandler(Keys.PageDown, () => replay.MovePosition(-0.01)); viewer.SetKeyHandler(Keys.PageUp, () => replay.MovePosition(+0.01)); viewer.SetKeyHandler((Keys)189, () => replay.MovePosition(-0.001)); viewer.SetKeyHandler((Keys)187, () => replay.MovePosition(+0.001)); viewer.SetKeyHandler(Keys.Add, () => replay.MovePosition(+0.001)); viewer.SetKeyHandler(Keys.F3, () => replay.MovePosition(0)); viewer.SetKeyHandler(Keys.D0, () => replay.Position = 0.0); viewer.SetKeyHandler(Keys.D1, () => replay.Position = 0.1); viewer.SetKeyHandler(Keys.D2, () => replay.Position = 0.2); viewer.SetKeyHandler(Keys.D3, () => replay.Position = 0.3); viewer.SetKeyHandler(Keys.D4, () => replay.Position = 0.4); viewer.SetKeyHandler(Keys.D5, () => replay.Position = 0.5); viewer.SetKeyHandler(Keys.D6, () => replay.Position = 0.6); viewer.SetKeyHandler(Keys.D7, () => replay.Position = 0.7); viewer.SetKeyHandler(Keys.D8, () => replay.Position = 0.8); viewer.SetKeyHandler(Keys.D9, () => replay.Position = 0.9); }
/// <summary> /// Erzeugt as Hauptfenster. /// </summary> /// <param name="profile">Die zu verwendene lokale DVB.NET Hardware.</param> /// <param name="mode">Operationsmodus der Anwendung.</param> /// <param name="args">Parameter zum Operationsmodus der Anwendung.</param> public ViewerMain(Profile profile, StartupModes mode, params string[] args) { // Remember m_Arguments = args; Profile = profile; m_Mode = mode; // Create components InitializeComponent(); // Attach to viewer IViewerSite viewer = (IViewerSite)theViewer; // Register additional keys - to be kept we must do this before SetSite fixes the map viewer.SetKeyHandler(Keys.J, ProcessFullScreen); viewer.SetKeyHandler(Keys.End, Close); // Connect viewer control to configuration theViewer.SetSite(this); // Prepare to show SetBounds(); }
/// <summary> /// Lädt die Liste der Konfigurationsoptionen neu. /// </summary> public void ResetOptions() { // Attach to viewer IViewerSite viewer = (IViewerSite)theViewer; // Wipe out viewer.ResetOptions(); // Fill configuration viewer.AddOption(new OptionDisplay(Properties.Resources.OptionGlobalSettings, () => ShowGlobalOptions(viewer))); viewer.AddOption(new OptionDisplay(Properties.Resources.OptionFavorites, ShowFavoriteSettings)); // Be safe try { // Fill conditional configuration viewer.FillOptions(); } catch (Exception ex) { // Report viewer.ShowMessage(ex.Message, Properties.Resources.ErrorTitle, false); } }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="streamIndex">Teilaufzeichnung, die betrachtet werden soll.</param> /// <param name="timeshift">Gesetzt, wenn der Timeshift Modus aktiviert werden soll.</param> public VCRAdaptor( IViewerSite main, int streamIndex, bool timeshift ) : base( main ) { // Connect to alternate interfaces ChannelInfo = (IChannelInfo) main; StreamInfo = (IStreamInfo) main; // Remember m_Profile = RemoteInfo.VCRProfile; // Use default if (string.IsNullOrEmpty( m_Profile )) m_Profile = "*"; // Construct Url var uri = RemoteInfo.ServerUri; // Connect to stream Connect( StreamInfo.BroadcastIP, StreamInfo.BroadcastPort, uri.Host ); // Find all current activities var activities = VCRNETRestProxy.GetActivitiesForProfile( EndPoint, Profile ); if (activities.Count < 1) StartLIVE( true ); else { // Find the activity var current = activities.FirstOrDefault( activity => activity.streamIndex == streamIndex ); if (current == null) StartWatch( null, true ); else if (timeshift && string.IsNullOrEmpty( StreamInfo.BroadcastIP ) && (current.files.Length > 0)) StartReplay( current.files[0], current.name, current, true ); else StartWatch( string.Format( "dvbnet:{0}", streamIndex ), true ); } }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> public TSAdaptor(IViewerSite main) : base(main) { }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> protected UDPAdaptor( IViewerSite main ) : base( main ) { // Alternate interfaces RemoteInfo = main as IRemoteInfo; }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> public TSAdaptor( IViewerSite main ) : base( main ) { }
/// <summary> /// Initialisiert eine Verwaltungsinstanz. /// </summary> /// <param name="main">Zugehörige Anwendung.</param> protected Adaptor(IViewerSite main) { // Remember Parent = main; }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> /// <param name="replayPath">Pfad zu einer VCR.NET Aufzeichnungsdatei.</param> public VCRAdaptor( IViewerSite main, string replayPath ) : base( main ) { // Connect to alternate interfaces ChannelInfo = (IChannelInfo) main; StreamInfo = (IStreamInfo) main; // Remember m_Profile = RemoteInfo.VCRProfile; // Use default if (string.IsNullOrEmpty( m_Profile )) m_Profile = "*"; // Construct Url Uri uri = RemoteInfo.ServerUri; // Connect to stream Connect( StreamInfo.BroadcastIP, StreamInfo.BroadcastPort, uri.Host ); // Check startup mode if (string.IsNullOrEmpty( replayPath )) { // Special if LIVE is active var current = VCRNETRestProxy.GetFirstActivityForProfile( EndPoint, Profile ); if (current != null) if (!current.IsActive) current = null; else if ("LIVE".Equals( current.name )) current = null; // Start correct access module if (current == null) StartLIVE( true ); else StartWatch( null, true ); } else { // Start remote file replay StartReplay( replayPath, null, null, true ); } }
/// <summary> /// Erzeugte eine neue Zugriffsinstanz. /// </summary> /// <param name="profile">Zu verwendende DVB.NET Hardware Abstraktion.</param> /// <param name="main">Zugehörige Anwendung.</param> public DeviceAdpator( Profile profile, IViewerSite main ) : base( main ) { // Remember Profile = profile; // Attach to the device Device = HardwareManager.OpenHardware( Profile ); // Create m_TTXConnector = new TTXStreamConsumer( this ); // Load alternate interfaces GeneralInfo = (IGeneralInfo) main; ChannelInfo = (IChannelInfo) main; StreamInfo = (IStreamInfo) main; LocalInfo = (ILocalInfo) main; // Initialize core - DirectShow Graph feed directly from a Transport Stream SetAccessor( new AudioVideoAccessor() ); }
/// <summary> /// Zeigt die Einstellungen der Anwendung an. /// </summary> /// <param name="viewer">Die zugehörige Darstellungsinstanz.</param> private bool ShowGlobalOptions(IViewerSite viewer) { // Show configuration dialog using (ShowCursor()) using (ProgramSettings dialog = new ProgramSettings(viewer)) if (DialogResult.OK == dialog.ShowDialog(this)) { // Update Properties.Settings.Default.Save(); // Change priority Process.GetCurrentProcess().PriorityClass = Properties.Settings.Default.Priority; // Done on first call if (null == viewer) { return(true); } // Load mode ProgramSettings.ChangeTypes changeType = dialog.ChangeType; // Update if (ProgramSettings.ChangeTypes.Picture == changeType) { if (!viewer.CanRestartGraph) { changeType = ProgramSettings.ChangeTypes.Application; } } // Check mode switch (changeType) { case ProgramSettings.ChangeTypes.Application: { // Report to user MessageBox.Show(this, Properties.Resources.RequireRestart, Properties.Resources.OptionGlobalSettings); // We can do no more break; } case ProgramSettings.ChangeTypes.Picture: { // Switch off OSD IOSDSite osd = (IOSDSite)theViewer; osd.Hide(); // Restart picture viewer.Restart(); // Done break; } } // Accepted return(true); } // Not accepted return(false); }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> public VCRAdaptor( IViewerSite main ) : this( main, default( string ) ) { }
/// <summary> /// Zeigt die Einstellungen der Anwendung an. /// </summary> /// <param name="viewer">Die zugehörige Darstellungsinstanz.</param> private bool ShowGlobalOptions( IViewerSite viewer ) { // Show configuration dialog using (ShowCursor()) using (ProgramSettings dialog = new ProgramSettings( viewer )) if (DialogResult.OK == dialog.ShowDialog( this )) { // Update Properties.Settings.Default.Save(); // Change priority Process.GetCurrentProcess().PriorityClass = Properties.Settings.Default.Priority; // Done on first call if (null == viewer) return true; // Load mode ProgramSettings.ChangeTypes changeType = dialog.ChangeType; // Update if (ProgramSettings.ChangeTypes.Picture == changeType) if (!viewer.CanRestartGraph) changeType = ProgramSettings.ChangeTypes.Application; // Check mode switch (changeType) { case ProgramSettings.ChangeTypes.Application: { // Report to user MessageBox.Show( this, Properties.Resources.RequireRestart, Properties.Resources.OptionGlobalSettings ); // We can do no more break; } case ProgramSettings.ChangeTypes.Picture: { // Switch off OSD IOSDSite osd = (IOSDSite) theViewer; osd.Hide(); // Restart picture viewer.Restart(); // Done break; } } // Accepted return true; } // Not accepted return false; }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> protected UDPAdaptor(IViewerSite main) : base(main) { // Alternate interfaces RemoteInfo = main as IRemoteInfo; }
/// <summary> /// Erzeugt eine neue Zugriffsinstanz. /// </summary> /// <param name="main">Die zugehörige Anwendung.</param> public VCRAdaptor(IViewerSite main) : this(main, default(string)) { }
/// <summary> /// Initialisiert eine Verwaltungsinstanz. /// </summary> /// <param name="main">Zugehörige Anwendung.</param> protected Adaptor( IViewerSite main ) { // Remember Parent = main; }
/// <summary> /// Konfiguriert die Tastatur für das Abspielen einer Datei. /// </summary> /// <param name="viewer">Die zugehörige Anzeigeeinheit.</param> /// <param name="replay">Die Komponente, die für das Auslesen der Datei zuständig ist.</param> public static void RegisterReplayKeys( IViewerSite viewer, IFileReplay replay ) { // Register all keys to move in file viewer.SetKeyHandler( Keys.Subtract, () => replay.MovePosition( -0.001 ) ); viewer.SetKeyHandler( Keys.PageDown, () => replay.MovePosition( -0.01 ) ); viewer.SetKeyHandler( Keys.PageUp, () => replay.MovePosition( +0.01 ) ); viewer.SetKeyHandler( (Keys) 189, () => replay.MovePosition( -0.001 ) ); viewer.SetKeyHandler( (Keys) 187, () => replay.MovePosition( +0.001 ) ); viewer.SetKeyHandler( Keys.Add, () => replay.MovePosition( +0.001 ) ); viewer.SetKeyHandler( Keys.F3, () => replay.MovePosition( 0 ) ); viewer.SetKeyHandler( Keys.D0, () => replay.Position = 0.0 ); viewer.SetKeyHandler( Keys.D1, () => replay.Position = 0.1 ); viewer.SetKeyHandler( Keys.D2, () => replay.Position = 0.2 ); viewer.SetKeyHandler( Keys.D3, () => replay.Position = 0.3 ); viewer.SetKeyHandler( Keys.D4, () => replay.Position = 0.4 ); viewer.SetKeyHandler( Keys.D5, () => replay.Position = 0.5 ); viewer.SetKeyHandler( Keys.D6, () => replay.Position = 0.6 ); viewer.SetKeyHandler( Keys.D7, () => replay.Position = 0.7 ); viewer.SetKeyHandler( Keys.D8, () => replay.Position = 0.8 ); viewer.SetKeyHandler( Keys.D9, () => replay.Position = 0.9 ); }