Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / Synthesis / WaveHeader.cs / 1 / WaveHeader.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // This class defines the header used to identify a waveform-audio // buffer. // // with the CLR 607 // History: // 2/1/2005 jeanfp Created from the Sapi Managed code //----------------------------------------------------------------- using System; using System.Runtime.InteropServices; using System.Speech.Synthesis.TtsEngine; namespace System.Speech.Internal.Synthesis { ////// /// internal sealed class WaveHeader : IDisposable { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors ////// Initialize an instance of a byte array. /// /// ///MMSYSERR.NOERROR if successful internal WaveHeader (byte [] buffer) { _dwBufferLength = buffer.Length; _gcHandle = GCHandle.Alloc (buffer, GCHandleType.Pinned); } ////// Frees any memory allocated for the buffer. /// ~WaveHeader () { Dispose (false); } ////// TODOC /// public void Dispose () { Dispose (true); GC.SuppressFinalize (this); } ////// Frees any memory allocated for the buffer. /// private void Dispose (bool disposing) { if (disposing) { ReleaseData (); if (_gcHandleWaveHdr.IsAllocated) { _gcHandleWaveHdr.Free (); } } } #endregion //******************************************************************** // // Internal Methods // //******************************************************************* #region Internal Methods internal void ReleaseData () { if (_gcHandle.IsAllocated) { _gcHandle.Free (); } } #endregion //******************************************************************** // // Internal Properties // //******************************************************************** #region Internal Properties internal GCHandle WAVEHDR { get { if (!_gcHandleWaveHdr.IsAllocated) { _waveHdr.lpData = _gcHandle.AddrOfPinnedObject (); _waveHdr.dwBufferLength = (uint) _dwBufferLength; _waveHdr.dwBytesRecorded = 0; _waveHdr.dwUser = 0; _waveHdr.dwFlags = 0; _waveHdr.dwLoops = 0; _waveHdr.lpNext = IntPtr.Zero; _gcHandleWaveHdr = GCHandle.Alloc (_waveHdr, GCHandleType.Pinned); } return _gcHandleWaveHdr; } } internal int SizeHDR { get { return Marshal.SizeOf (_waveHdr); } } #endregion //******************************************************************* // // Internal Fields // //******************************************************************** #region Internal Fields ////// Used by dwFlags in WaveHeader /// Set by the device driver to indicate that it is finished with the buffer /// and is returning it to the application. /// internal const int WHDR_DONE = 0x00000001; ////// Used by dwFlags in WaveHeader /// Set by Windows to indicate that the buffer has been prepared with the /// waveInPrepareHeader or waveOutPrepareHeader function. /// internal const int WHDR_PREPARED = 0x00000002; ////// Used by dwFlags in WaveHeader /// This buffer is the first buffer in a loop. This flag is used only with /// output buffers. /// internal const int WHDR_BEGINLOOP = 0x00000004; ////// Used by dwFlags in WaveHeader /// This buffer is the last buffer in a loop. This flag is used only with /// output buffers. /// internal const int WHDR_ENDLOOP = 0x00000008; ////// Used by dwFlags in WaveHeader /// Set by Windows to indicate that the buffer is queued for playback. /// internal const int WHDR_INQUEUE = 0x00000010; ////// Set in WaveFormat.wFormatTag to specify PCM data. /// internal const int WAVE_FORMAT_PCM = 1; #endregion //******************************************************************* // // Private Fields // //******************************************************************* #region private Fields ////// Long pointer to the address of the waveform buffer. This buffer must /// be block-aligned according to the nBlockAlign member of the /// WaveFormat structure used to open the device. /// private GCHandle _gcHandle = new GCHandle (); private GCHandle _gcHandleWaveHdr = new GCHandle (); private WAVEHDR _waveHdr = new WAVEHDR (); ////// Specifies the length, in bytes, of the buffer. /// internal int _dwBufferLength; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // This class defines the header used to identify a waveform-audio // buffer. // // with the CLR 607 // History: // 2/1/2005 jeanfp Created from the Sapi Managed code //----------------------------------------------------------------- using System; using System.Runtime.InteropServices; using System.Speech.Synthesis.TtsEngine; namespace System.Speech.Internal.Synthesis { ////// /// internal sealed class WaveHeader : IDisposable { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors ////// Initialize an instance of a byte array. /// /// ///MMSYSERR.NOERROR if successful internal WaveHeader (byte [] buffer) { _dwBufferLength = buffer.Length; _gcHandle = GCHandle.Alloc (buffer, GCHandleType.Pinned); } ////// Frees any memory allocated for the buffer. /// ~WaveHeader () { Dispose (false); } ////// TODOC /// public void Dispose () { Dispose (true); GC.SuppressFinalize (this); } ////// Frees any memory allocated for the buffer. /// private void Dispose (bool disposing) { if (disposing) { ReleaseData (); if (_gcHandleWaveHdr.IsAllocated) { _gcHandleWaveHdr.Free (); } } } #endregion //******************************************************************** // // Internal Methods // //******************************************************************* #region Internal Methods internal void ReleaseData () { if (_gcHandle.IsAllocated) { _gcHandle.Free (); } } #endregion //******************************************************************** // // Internal Properties // //******************************************************************** #region Internal Properties internal GCHandle WAVEHDR { get { if (!_gcHandleWaveHdr.IsAllocated) { _waveHdr.lpData = _gcHandle.AddrOfPinnedObject (); _waveHdr.dwBufferLength = (uint) _dwBufferLength; _waveHdr.dwBytesRecorded = 0; _waveHdr.dwUser = 0; _waveHdr.dwFlags = 0; _waveHdr.dwLoops = 0; _waveHdr.lpNext = IntPtr.Zero; _gcHandleWaveHdr = GCHandle.Alloc (_waveHdr, GCHandleType.Pinned); } return _gcHandleWaveHdr; } } internal int SizeHDR { get { return Marshal.SizeOf (_waveHdr); } } #endregion //******************************************************************* // // Internal Fields // //******************************************************************** #region Internal Fields ////// Used by dwFlags in WaveHeader /// Set by the device driver to indicate that it is finished with the buffer /// and is returning it to the application. /// internal const int WHDR_DONE = 0x00000001; ////// Used by dwFlags in WaveHeader /// Set by Windows to indicate that the buffer has been prepared with the /// waveInPrepareHeader or waveOutPrepareHeader function. /// internal const int WHDR_PREPARED = 0x00000002; ////// Used by dwFlags in WaveHeader /// This buffer is the first buffer in a loop. This flag is used only with /// output buffers. /// internal const int WHDR_BEGINLOOP = 0x00000004; ////// Used by dwFlags in WaveHeader /// This buffer is the last buffer in a loop. This flag is used only with /// output buffers. /// internal const int WHDR_ENDLOOP = 0x00000008; ////// Used by dwFlags in WaveHeader /// Set by Windows to indicate that the buffer is queued for playback. /// internal const int WHDR_INQUEUE = 0x00000010; ////// Set in WaveFormat.wFormatTag to specify PCM data. /// internal const int WAVE_FORMAT_PCM = 1; #endregion //******************************************************************* // // Private Fields // //******************************************************************* #region private Fields ////// Long pointer to the address of the waveform buffer. This buffer must /// be block-aligned according to the nBlockAlign member of the /// WaveFormat structure used to open the device. /// private GCHandle _gcHandle = new GCHandle (); private GCHandle _gcHandleWaveHdr = new GCHandle (); private WAVEHDR _waveHdr = new WAVEHDR (); ////// Specifies the length, in bytes, of the buffer. /// internal int _dwBufferLength; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CustomServiceCredentials.cs
- AssemblyCache.cs
- ToolStripManager.cs
- TreeNodeCollection.cs
- ContextMenuStrip.cs
- MatrixTransform.cs
- EventManager.cs
- ObjectListComponentEditor.cs
- SafeThreadHandle.cs
- DataGridViewCellValueEventArgs.cs
- FactoryGenerator.cs
- CfgSemanticTag.cs
- IPPacketInformation.cs
- Vector.cs
- _ListenerResponseStream.cs
- Encoding.cs
- PeerNameResolver.cs
- WebPartConnectionsEventArgs.cs
- FollowerQueueCreator.cs
- TextFormatterImp.cs
- Configuration.cs
- ThreadExceptionEvent.cs
- InternalBufferOverflowException.cs
- CommandEventArgs.cs
- HttpListenerResponse.cs
- ResourceReferenceExpressionConverter.cs
- EventLogPermission.cs
- MDIClient.cs
- TextViewSelectionProcessor.cs
- IntSecurity.cs
- TypeDescriptorContext.cs
- GZipDecoder.cs
- ConsumerConnectionPoint.cs
- UnicastIPAddressInformationCollection.cs
- LogLogRecordEnumerator.cs
- DataGridColumn.cs
- XmlSchemaCompilationSettings.cs
- __TransparentProxy.cs
- WindowsGraphicsWrapper.cs
- XmlAttribute.cs
- ArrayListCollectionBase.cs
- SymbolPair.cs
- ArraySegment.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- KeyboardNavigation.cs
- SplitterEvent.cs
- Int32Collection.cs
- XmlWriterSettings.cs
- XmlSerializerAssemblyAttribute.cs
- WorkflowElementDialog.cs
- Dump.cs
- ScopeElement.cs
- typedescriptorpermissionattribute.cs
- RankException.cs
- Message.cs
- LambdaCompiler.Logical.cs
- BlockUIContainer.cs
- Attributes.cs
- RuleConditionDialog.cs
- EditBehavior.cs
- EnumUnknown.cs
- SqlRowUpdatingEvent.cs
- TextBox.cs
- KeyValueConfigurationElement.cs
- DataGridViewComboBoxEditingControl.cs
- StringHelper.cs
- StructuralObject.cs
- login.cs
- InkCanvasFeedbackAdorner.cs
- BindingMemberInfo.cs
- compensatingcollection.cs
- TraceLevelStore.cs
- ClonableStack.cs
- HandlerFactoryWrapper.cs
- XmlNodeChangedEventManager.cs
- Normalization.cs
- EncodingConverter.cs
- NativeMethods.cs
- UIElementHelper.cs
- CollectionViewGroupRoot.cs
- UpdatePanelTriggerCollection.cs
- RegexMatch.cs
- SupportsEventValidationAttribute.cs
- ReferencedCollectionType.cs
- Stroke2.cs
- RichListBox.cs
- EventLogTraceListener.cs
- MapPathBasedVirtualPathProvider.cs
- CompModSwitches.cs
- SafeNativeMethods.cs
- CodeCatchClauseCollection.cs
- ObjectListFieldsPage.cs
- TextTreePropertyUndoUnit.cs
- XmlAttributeOverrides.cs
- SubordinateTransaction.cs
- ToolboxItemAttribute.cs
- SqlServer2KCompatibilityCheck.cs
- GridEntry.cs
- DefaultProxySection.cs
- DataGridViewCellStyleConverter.cs