/////////////////////////////////////////////////////////////////////////////// // 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]; }
/// <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); }
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]; }
/////////////////////////////////////////////////////////////////////////////// // 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); }