コード例 #1
0
        internal Win7APIDVBS2Handler(IBaseFilter tunerFilter)
        {
            IBDA_Topology topology = tunerFilter as IBDA_Topology;

            if (topology == null)
            {
                return;
            }

            this.tunerFilter = tunerFilter;

            int nodeTypeCount = 0;

            int[] nodeTypes = new int[10];

            int reply = topology.GetNodeTypes(out nodeTypeCount, 10, nodeTypes);

            DsError.ThrowExceptionForHR(reply);

            for (int nodeTypeIndex = 0; nodeTypeIndex < nodeTypeCount; nodeTypeIndex++)
            {
                int    interfaceCount;
                Guid[] interfaces = new Guid[32];
                reply = topology.GetNodeInterfaces(nodeTypes[nodeTypeIndex], out interfaceCount, 32, interfaces);
                DsError.ThrowExceptionForHR(reply);

                for (int searchIndex = 0; searchIndex < interfaceCount; searchIndex++)
                {
                    if (interfaces[searchIndex] == typeof(IBDA_DigitalDemodulator2).GUID)
                    {
                        if (RunParameters.Instance.TraceIDs.Contains("BDA"))
                        {
                            Logger.Instance.Write("BDA DVB-S2 interface located for node type " + nodeTypes[nodeTypeIndex]);
                        }

                        object controlNode;
                        reply = topology.GetControlNode(0, 1, nodeTypes[nodeTypeIndex], out controlNode);
                        DsError.ThrowExceptionForHR(reply);

                        commandInterface = controlNode as IBDA_DigitalDemodulator2;
                        if (commandInterface == null)
                        {
                            if (RunParameters.Instance.TraceIDs.Contains("BDA"))
                            {
                                Logger.Instance.Write("BDA Can't use DVB-S2 interface: cast of control node failed");
                            }
                        }
                        else
                        {
                            if (RunParameters.Instance.TraceIDs.Contains("BDA"))
                            {
                                Logger.Instance.Write("BDA DVB-S2 interface available");
                            }
                            return;
                        }
                    }
                }
            }
        }
コード例 #2
0
        internal Win7APIDVBS2Handler(IBaseFilter tunerFilter)
        {
            IBDA_Topology topology = tunerFilter as IBDA_Topology;
            if (topology == null)
                return;

            this.tunerFilter = tunerFilter;

            int nodeTypeCount = 0;
            int[] nodeTypes = new int[10];

            int reply = topology.GetNodeTypes(out nodeTypeCount, 10, nodeTypes);
            DsError.ThrowExceptionForHR(reply);

            for (int nodeTypeIndex = 0; nodeTypeIndex < nodeTypeCount; nodeTypeIndex++)
            {
                int interfaceCount;
                Guid[] interfaces = new Guid[32];
                reply = topology.GetNodeInterfaces(nodeTypes[nodeTypeIndex], out interfaceCount, 32, interfaces);
                DsError.ThrowExceptionForHR(reply);

                for (int searchIndex = 0; searchIndex < interfaceCount; searchIndex++)
                {
                    if (interfaces[searchIndex] == typeof(IBDA_DigitalDemodulator2).GUID)
                    {
                        if (RunParameters.Instance.TraceIDs.Contains("BDA"))
                            Logger.Instance.Write("BDA DVB-S2 interface located for node type " + nodeTypes[nodeTypeIndex]);

                        object controlNode;
                        reply = topology.GetControlNode(0, 1, nodeTypes[nodeTypeIndex], out controlNode);
                        DsError.ThrowExceptionForHR(reply);

                        commandInterface = controlNode as IBDA_DigitalDemodulator2;
                        if (commandInterface == null)
                        {
                            if (RunParameters.Instance.TraceIDs.Contains("BDA"))
                                Logger.Instance.Write("BDA Can't use DVB-S2 interface: cast of control node failed");
                        }
                        else
                        {
                            if (RunParameters.Instance.TraceIDs.Contains("BDA"))
                                Logger.Instance.Write("BDA DVB-S2 interface available");
                            return;
                        }
                    }
                }
            }
        }