Example #1
0
    ///////////////////////////////////////////////////////////////////////////////
    // Defining Constants                                                        //
    ///////////////////////////////////////////////////////////////////////////////
    #region CONSTANTS
    #endregion //CONSTANTS

    ///////////////////////////////////////////////////////////////////////////////
    // Defining Variables, Enumerations, Events                                  //
    ///////////////////////////////////////////////////////////////////////////////
    #region FIELDS
    #endregion //FIELDS

    ///////////////////////////////////////////////////////////////////////////////
    // Construction and Initializing methods                                     //
    ///////////////////////////////////////////////////////////////////////////////
    #region CONSTRUCTION

    /// <summary>
    /// Initializes a new instance of the ParamClass class.
    /// </summary>
    /// <param name="paramNumber">Number of params</param>
    /// <param name="timeFormats">A <see cref="TimeFormatFlags"/> flags.</param>
    public ParamClass(int paramNumber, TimeFormatFlags timeFormats)
    {
      this.CurrentTimeFormat = 0;
      this.TimeData = 0;

      // Make room for the timeformats
      int count = MPEnvelopes.CountBits((int)timeFormats);
      this.TimeFormats = new Guid[count];

      if ((timeFormats & TimeFormatFlags.Samples) > 0)
      {
        this.TimeFormats[--count] = MediaParamTimeFormat.Samples;
      }

      if ((timeFormats & TimeFormatFlags.Music) > 0)
      {
        this.TimeFormats[--count] = MediaParamTimeFormat.Music;
      }

      if ((timeFormats & TimeFormatFlags.Reference) > 0)
      {
        this.TimeFormats[--count] = MediaParamTimeFormat.Reference;
      }

      Debug.Assert(count == 0, "Unrecognized time format specified");

      // Make room for the parameter info
      this.ParamText = new string[paramNumber];
      this.Parms = new ParamInfo[paramNumber];
      this.Envelopes = new MPEnvelopes[paramNumber];
    }
Example #2
0
        ///////////////////////////////////////////////////////////////////////////////
        // Defining Constants                                                        //
        ///////////////////////////////////////////////////////////////////////////////
        #region CONSTANTS
        #endregion //CONSTANTS

        ///////////////////////////////////////////////////////////////////////////////
        // Defining Variables, Enumerations, Events                                  //
        ///////////////////////////////////////////////////////////////////////////////
        #region FIELDS
        #endregion //FIELDS

        ///////////////////////////////////////////////////////////////////////////////
        // Construction and Initializing methods                                     //
        ///////////////////////////////////////////////////////////////////////////////
        #region CONSTRUCTION

        /// <summary>
        /// Initializes a new instance of the ParamClass class.
        /// </summary>
        /// <param name="paramNumber">Number of params</param>
        /// <param name="timeFormats">A <see cref="TimeFormatFlags"/> flags.</param>
        public ParamClass(int paramNumber, TimeFormatFlags timeFormats)
        {
            this.CurrentTimeFormat = 0;
            this.TimeData          = 0;

            // Make room for the timeformats
            int count = MPEnvelopes.CountBits((int)timeFormats);

            this.TimeFormats = new Guid[count];

            if ((timeFormats & TimeFormatFlags.Samples) > 0)
            {
                this.TimeFormats[--count] = MediaParamTimeFormat.Samples;
            }

            if ((timeFormats & TimeFormatFlags.Music) > 0)
            {
                this.TimeFormats[--count] = MediaParamTimeFormat.Music;
            }

            if ((timeFormats & TimeFormatFlags.Reference) > 0)
            {
                this.TimeFormats[--count] = MediaParamTimeFormat.Reference;
            }

            Debug.Assert(count == 0, "Unrecognized time format specified");

            // Make room for the parameter info
            this.ParamText = new string[paramNumber];
            this.Parms     = new ParamInfo[paramNumber];
            this.Envelopes = new MPEnvelopes[paramNumber];
        }
Example #3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="iInputs">Number of input streams</param>
        /// <param name="iOutputs">Number of output streams</param>
        /// <param name="iParams">Number of parameters</param>
        /// <param name="iTimeFormats">What time formats the parameters support</param>
        /// <remarks>
        /// This constructor will be called from the constructor of the class that implements 
        /// IMediaObjectImpl. See <see cref="IMediaObjectImpl"/> for a step by step description 
        /// of the process.
        /// </remarks>
        protected IMediaObjectImpl(int iInputs, int iOutputs, int iParams, TimeFormatFlags iTimeFormats)
        {
            iInstanceCount++;
            m_Log = new Logging(iInstanceCount);
            m_Log.Write("-------------------------------\r\n");
            m_Log.Write(string.Format("bConstructor {0}\r\n", iInstanceCount));

            m_NumInputs = iInputs;
            m_NumOutputs = iOutputs;
            m_fTypesSet = false;
            m_fFlushed = true;
            m_fResourcesAllocated = false;
            m_InputInfo = new PinDef[m_NumInputs];
            m_OutputInfo = new PinDef[m_NumOutputs];

            // Protect ourselves from incorrectly written children
            m_Params = new ParamClass(iParams, iTimeFormats);
        }
Example #4
0
            public ParamClass(int iParams, TimeFormatFlags iTimeFormats)
            {
                CurrentTimeFormat = 0;
                TimeData = 0;

                // Make room for the timeformats
                int iCount = CountBits((int)iTimeFormats);
                TimeFormats = new Guid[iCount];

                if ((iTimeFormats & TimeFormatFlags.Samples) > 0)
                {
                    TimeFormats[--iCount] = MediaParamTimeFormat.Samples;
                }
                if ((iTimeFormats & TimeFormatFlags.Music) > 0)
                {
                    TimeFormats[--iCount] = MediaParamTimeFormat.Music;
                }
                if ((iTimeFormats & TimeFormatFlags.Reference) > 0)
                {
                    TimeFormats[--iCount] = MediaParamTimeFormat.Reference;
                }
                Debug.Assert(iCount == 0, "Unrecognized time format specified");

                // Make room for the parameter info
                ParamText = new string[iParams];
                Parms = new ParamInfo[iParams];
                Envelopes = new MPEnvelopes[iParams];
            }
Example #5
0
    ///////////////////////////////////////////////////////////////////////////////
    // Construction and Initializing methods                                     //
    ///////////////////////////////////////////////////////////////////////////////
    #region CONSTRUCTION

    /// <summary>
    /// Initializes a new instance of the IMediaObjectImpl class.
    /// </summary>
    /// <param name="inputs">Number of input streams</param>
    /// <param name="outputs">Number of output streams</param>
    /// <param name="numberOfParameters">Number of parameters</param>
    /// <param name="timeFormats">What time formats the parameters support</param>
    /// <remarks>
    /// This constructor will be called from the constructor of the class that implements 
    /// IMediaObjectImpl. See <see cref="IMediaObjectImpl"/> for a step by step description 
    /// of the process.
    /// </remarks>
    protected IMediaObjectImpl(int inputs, int outputs, int numberOfParameters, TimeFormatFlags timeFormats)
    {
      instanceCount++;

      this.numInputs = inputs;
      this.numOutputs = outputs;
      this.typesSet = false;
      this.flushed = true;
      this.resourcesAllocated = false;
      this.inputInfo = new PinDef[this.numInputs];
      this.outputInfo = new PinDef[this.numOutputs];

      // Protect ourselves from incorrectly written children
      this.paramsClass = new ParamClass(numberOfParameters, timeFormats);
    }