/// <summary> /// Füllt eine Auswahlliste mit Erweiterungen. /// </summary> /// <param name="target">Die zu befüllende Liste.</param> /// <param name="details">Die Schaltfläche zur Pflege der Detailparameter.</param> /// <param name="type">Die Art der Erweiterung.</param> private void Fill(ComboBox target, Button details, PipelineTypes type) { // Remember m_ProviderSelection.Add(type, new ProviderUI(type, target, details)); // Connect details.Tag = type; target.Tag = type; // Request List <ProviderSelector> providers; if (s_Types.TryGetValue(type, out providers)) { target.Items.AddRange(providers.ToArray()); } // Check for done target.Enabled = (target.Items.Count > 0); details.Enabled = false; if (!target.Enabled) { return; } // Forget about sorting target.Sorted = false; // Add a null option target.Items.Insert(0, Properties.Resources.Select_NoAction); // Pre select target.SelectedIndex = 0; }
/// <summary> /// Erzeugt eine neue Verwaltung. /// </summary> /// <param name="type">Die konkrete Art der Erweiterung.</param> /// <param name="selector">Die Liste mit allen Erweiterungen.</param> /// <param name="details">Die Schaltfläche für die Pflege der Parameter.</param> public ProviderUI(PipelineTypes type, ComboBox selector, Button details) { // Remember m_TypePrefix = ProfileParameter.GetPrefixForExtensionParameter(type); Selector = selector; Details = details; }
public Task <TResult> Ask <TResult>(IQuery <TResult> query, CancellationToken cancellationToken = default) { EnsureNotDisposed(); var handlerType = PipelineTypes.GetForQuery(query.GetType()); var handler = (IQueryPipeline <TResult>)_scope.GetService(handlerType); return(handler.GetResponse(query, cancellationToken)); }
public Task Send(ICommand command, CancellationToken cancellationToken = default) { EnsureNotDisposed(); var executorType = PipelineTypes.GetForCommand(command.GetType()); var executor = (ICommandPipeline)_scope.GetService(executorType); return(executor.Send(command, cancellationToken)); }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install( DataGraph graph, Profile profile, PipelineTypes types ) { // Validate if (graph == null) throw new ArgumentNullException( "graph" ); if (profile == null) throw new ArgumentNullException( "profile" ); // Check supported types if ((types & PipelineTypes.DVBS2) != 0) graph.TunePipeline.AddPreProcessing( ActivateS2 ); }
public Task Send(INotification notification, CancellationToken cancellationToken = default) { if (_disposed) { throw Error.Disposed(nameof(Emitter)); } var publisherType = PipelineTypes.GetForNotification(notification.GetType()); var publisher = (INotificationPipeline)_scope.GetService(publisherType); return(publisher?.Publish(notification, cancellationToken) ?? TaskUtils.CompletedTask); }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install( DataGraph graph, Profile profile, PipelineTypes types ) { // Validate if (graph == null) throw new ArgumentNullException( "graph" ); if (profile == null) throw new ArgumentNullException( "profile" ); // Check supported types if ((types & PipelineTypes.SignalInformation) != 0) graph.SignalPipeline.AddPostProcessing( TransformSignal ); }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install(DataGraph graph, Profile profile, PipelineTypes types) { // Validate if (graph == null) { throw new ArgumentNullException("graph"); } if (profile == null) { throw new ArgumentNullException("profile"); } // Check supported types if ((types & PipelineTypes.CICAM) != 0) { // Load static settings m_suppress = AdditionalFilterSelector.GetSuppression(PipelineTypes.CICAM, profile.Parameters); m_hasBeenReset = (m_suppress != SuppressionMode.None); // Analyse settings if (!bool.TryParse(profile.Parameters.GetParameter(PipelineTypes.CICAM, AdditionalFilterSelector.CancelEncryptionOnChangedStream), out m_disableOnChange)) { m_disableOnChange = false; } if (!int.TryParse(profile.Parameters.GetParameter(PipelineTypes.CICAM, AdditionalFilterSelector.DelayOnChangedStream), out m_changeDelay)) { m_changeDelay = 0; } // Register in pipeline graph.DecryptionPipeline.AddPostProcessing(Decrypt); // Check for additional filter var filterDisplayName = profile.Parameters.GetParameter(PipelineTypes.CICAM, AdditionalFilterSelector.FilterName); if (!string.IsNullOrEmpty(filterDisplayName)) { // Load moniker - if available var filterMoniker = profile.Parameters.GetParameter(PipelineTypes.CICAM, AdditionalFilterSelector.FilterMoniker); // Remember position of our extension m_filterIndex = graph.AdditionalFilterInformations.Count; // Register in graph graph.AdditionalFilterInformations.Add(DeviceAndFilterInformations.Cache.AllFilters.FindFilter(filterDisplayName, filterMoniker)); } } }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install(DataGraph graph, Profile profile, PipelineTypes types) { // Validate if (graph == null) { throw new ArgumentNullException("graph"); } if (profile == null) { throw new ArgumentNullException("profile"); } // Check supported types if ((types & PipelineTypes.CICAM) != 0) { graph.DecryptionPipeline.AddPostProcessing(Decrypt); } }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install(DataGraph graph, Profile profile, PipelineTypes types) { // Validate if (graph == null) { throw new ArgumentNullException("graph"); } if (profile == null) { throw new ArgumentNullException("profile"); } // Check supported types if ((types & PipelineTypes.DiSEqC) != 0) { graph.TunePipeline.AddPreProcessing(ApplyDiSEqC); } }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install(DataGraph graph, Profile profile, PipelineTypes types) { // Validate if (graph == null) { throw new ArgumentNullException("graph"); } if (profile == null) { throw new ArgumentNullException("profile"); } // Check supported types if ((types & PipelineTypes.SignalInformation) != 0) { graph.SignalPipeline.AddPostProcessing(TransformSignal); } }
/// <summary> /// Ermittelt einen Parameter. /// </summary> /// <param name="parameters">Die Liste der zu verwendenden Parameter.</param> /// <param name="type">Die Art der Erweiterung, die einen Sonderwert sucht.</param> /// <param name="name">Der Name des Parameters.</param> /// <returns>Die gewünschten Informationen.</returns> /// <exception cref="ArgumentNullException">Ein Parameter wurde nicht angegeben.</exception> public static string GetParameter(this IEnumerable <ProfileParameter> parameters, PipelineTypes type, string name) { // Forward if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } else { return(parameters.GetParameter(string.Format("{0}{1}", ProfileParameter.GetPrefixForExtensionParameter(type), name))); } }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install( DataGraph graph, Profile profile, PipelineTypes types ) { // Validate if (graph == null) throw new ArgumentNullException( "graph" ); if (profile == null) throw new ArgumentNullException( "profile" ); // Check supported types if ((types & PipelineTypes.CICAM) != 0) { // Load static settings m_suppress = AdditionalFilterSelector.GetSuppression( PipelineTypes.CICAM, profile.Parameters ); m_hasBeenReset = (m_suppress != SuppressionMode.None); // Analyse settings if (!bool.TryParse( profile.Parameters.GetParameter( PipelineTypes.CICAM, AdditionalFilterSelector.CancelEncryptionOnChangedStream ), out m_disableOnChange )) m_disableOnChange = false; if (!int.TryParse( profile.Parameters.GetParameter( PipelineTypes.CICAM, AdditionalFilterSelector.DelayOnChangedStream ), out m_changeDelay )) m_changeDelay = 0; // Register in pipeline graph.DecryptionPipeline.AddPostProcessing( Decrypt ); // Check for additional filter var filterDisplayName = profile.Parameters.GetParameter( PipelineTypes.CICAM, AdditionalFilterSelector.FilterName ); if (!string.IsNullOrEmpty( filterDisplayName )) { // Load moniker - if available var filterMoniker = profile.Parameters.GetParameter( PipelineTypes.CICAM, AdditionalFilterSelector.FilterMoniker ); // Remember position of our extension m_filterIndex = graph.AdditionalFilterInformations.Count; // Register in graph graph.AdditionalFilterInformations.Add( DeviceAndFilterInformations.Cache.AllFilters.FindFilter( filterDisplayName, filterMoniker ) ); } } }
/// <summary> /// Pflegt die zusätzlichen Parameter dieser Erweiterung. /// </summary> /// <param name="parent">Das übergeordnete Oberflächenelement.</param> /// <param name="parameters">Die Liste der Parameter.</param> /// <param name="type">Die Art der Erweiterung, deren Parameter gepflegt werden sollen.</param> void IPipelineParameterExtension.Edit( Control parent, List<ProfileParameter> parameters, PipelineTypes type ) { // Show dialog using (var dialog = new AdditionalFilterSelector( parameters )) if (dialog.ShowDialog( parent ) == DialogResult.OK) dialog.Update( parameters ); }
/// <summary> /// Meldet die interne Kennung für Erweiterungsparameter einer bestimmten Art. /// </summary> /// <param name="type">Die Art der Erweiterung.</param> /// <returns>Der zu verwendende Namenspräfix.</returns> internal static string GetPrefixForExtensionParameter(PipelineTypes type) { // Create return(string.Format("#ExtParam#{0}_", type)); }
/// <summary> /// Ermittelt alle Erweiterungsinstanzen einer bestimmten Art. /// </summary> /// <param name="forType">Die gewünschte Art von Erweiterung.</param> /// <returns>Eine Auflistung aller Erweiterungen dieser Art.</returns> public IEnumerable<PipelineItem> GetPipelineItems( PipelineTypes forType ) { // Report return Pipeline.Where( p => (p.SupportedOperations & forType) != 0 ); }
/// <summary> /// Ermittelt die Art der Unterdrückung der CI/CAM Initialisierung. /// </summary> /// <param name="type">Die Art der Erweiterung, die im Namen zu berücksichtigen ist.</param> /// <param name="parameters">Die Liste aller Parameter.</param> /// <returns>Der aktuell gültige Parameter.</returns> internal static SuppressionMode GetSuppression( PipelineTypes? type, IEnumerable<ProfileParameter> parameters ) { // Load native string setting; if (type.HasValue) setting = parameters.GetParameter( type.Value, ResetSuppressionMode ); else setting = parameters.GetParameter( ResetSuppressionMode ); // Convert if (!string.IsNullOrEmpty( setting )) try { // Convert return (SuppressionMode) Enum.Parse( typeof( SuppressionMode ), setting ); } catch { // Ignore any error - would prefer a TryParse... } // Default return SuppressionMode.None; }
/// <summary> /// Erzeugt eine neue Kennzeichnung. /// </summary> /// <param name="types">Die von dieser Klasse unterstützten Aufgabenarten.</param> /// <param name="displayName">Eine Beschreibung für diese Klasse.</param> public PipelineAttribute(PipelineTypes types, string displayName) { // Remember DisplayName = displayName; Types = types; }
/// <summary> /// Erzeugt eine neue Kennzeichnung. /// </summary> /// <param name="types">Die von dieser Klasse unterstützten Aufgabenarten.</param> /// <param name="displayName">Eine Beschreibung für diese Klasse.</param> public PipelineAttribute( PipelineTypes types, string displayName ) { // Remember DisplayName = displayName; Types = types; }
internal void SortPipelines() { PipelineTypes = PipelineTypes.OrderBy(t => t.BlockAttribute.Order).ToList(); }
/// <summary> /// Meldet die interne Kennung für Erweiterungsparameter einer bestimmten Art. /// </summary> /// <param name="type">Die Art der Erweiterung.</param> /// <returns>Der zu verwendende Namenspräfix.</returns> internal static string GetPrefixForExtensionParameter( PipelineTypes type ) { // Create return string.Format( "#ExtParam#{0}_", type ); }
/// <summary> /// Pflegt die zusätzlichen Parameter dieser Erweiterung. /// </summary> /// <param name="parent">Das übergeordnete Oberflächenelement.</param> /// <param name="parameters">Die Liste der Parameter.</param> /// <param name="type">Die Art der Erweiterung, deren Parameter gepflegt werden sollen.</param> void IPipelineParameterExtension.Edit(Control parent, List <ProfileParameter> parameters, PipelineTypes type) { // Show dialog using (var dialog = new AdditionalFilterSelector(parameters)) if (dialog.ShowDialog(parent) == DialogResult.OK) { dialog.Update(parameters); } }
/// <summary> /// Aktualisiert die Aktionslisten des DVB Empfangs. /// </summary> /// <param name="graph">Der DirectShow Graph für den DVB Empfang.</param> /// <param name="profile">Das verwendete Geräteprofil.</param> /// <param name="types">Die gewünschte Aktivierung.</param> void IPipelineExtension.Install( DataGraph graph, Profile profile, PipelineTypes types ) { // Validate if (graph == null) throw new ArgumentNullException( "graph" ); if (profile == null) throw new ArgumentNullException( "profile" ); // Check supported types if ((types & PipelineTypes.CICAM) != 0) graph.DecryptionPipeline.AddPostProcessing( Decrypt ); }
/// <summary> /// Ermittelt alle Erweiterungsinstanzen einer bestimmten Art. /// </summary> /// <param name="forType">Die gewünschte Art von Erweiterung.</param> /// <returns>Eine Auflistung aller Erweiterungen dieser Art.</returns> public IEnumerable <PipelineItem> GetPipelineItems(PipelineTypes forType) { // Report return(Pipeline.Where(p => (p.SupportedOperations & forType) != 0)); }