Code:
/ DotNET / DotNET / 8.0 / untmp / 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 [....] 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SrgsDocument.cs
- IPEndPoint.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- DataServiceResponse.cs
- DataGridCaption.cs
- RuntimeEnvironment.cs
- ThaiBuddhistCalendar.cs
- SectionXmlInfo.cs
- PtsContext.cs
- AuthorizationRuleCollection.cs
- BuildProviderInstallComponent.cs
- _RequestLifetimeSetter.cs
- SqlClientMetaDataCollectionNames.cs
- WebEventTraceProvider.cs
- ReadOnlyHierarchicalDataSourceView.cs
- VScrollBar.cs
- CqlQuery.cs
- DataPagerField.cs
- MULTI_QI.cs
- TreeNode.cs
- WebPartConnectionsConnectVerb.cs
- HttpCacheParams.cs
- Vector3DIndependentAnimationStorage.cs
- TemplateInstanceAttribute.cs
- AccessViolationException.cs
- DeclarativeCatalogPart.cs
- HttpFileCollectionWrapper.cs
- SimpleRecyclingCache.cs
- Visual3DCollection.cs
- OracleBinary.cs
- NotificationContext.cs
- WindowsEditBoxRange.cs
- AppearanceEditorPart.cs
- PackageRelationshipSelector.cs
- WebScriptClientGenerator.cs
- Shape.cs
- FormsAuthenticationUserCollection.cs
- LinearGradientBrush.cs
- DesignTimeXamlWriter.cs
- XmlQueryTypeFactory.cs
- IndicFontClient.cs
- RectangleHotSpot.cs
- BinaryUtilClasses.cs
- BufferedWebEventProvider.cs
- BoolExpressionVisitors.cs
- SynchronizedDispatch.cs
- TraceHandler.cs
- LocatorPart.cs
- GridViewColumnHeader.cs
- SqlException.cs
- FileDialog_Vista_Interop.cs
- CodeMethodReturnStatement.cs
- CreateUserWizardStep.cs
- DebugInfoExpression.cs
- HtmlWindowCollection.cs
- UIPropertyMetadata.cs
- LessThanOrEqual.cs
- ExpandoObject.cs
- MultipleViewProviderWrapper.cs
- KeyInstance.cs
- RectConverter.cs
- ExternalCalls.cs
- AnimatedTypeHelpers.cs
- TransformDescriptor.cs
- LayoutTable.cs
- MimeTypePropertyAttribute.cs
- BitmapEffectvisualstate.cs
- XamlToRtfParser.cs
- StatusBarPanel.cs
- ChangeConflicts.cs
- SqlConnectionPoolProviderInfo.cs
- CodeBinaryOperatorExpression.cs
- TextEditorTables.cs
- HMACMD5.cs
- ConfigXmlText.cs
- SqlDataRecord.cs
- ItemCheckEvent.cs
- ListItemsPage.cs
- CrossSiteScriptingValidation.cs
- UserControlParser.cs
- hresults.cs
- ConsumerConnectionPointCollection.cs
- _NegotiateClient.cs
- WebPartConnectVerb.cs
- RequestTimeoutManager.cs
- FileEnumerator.cs
- QEncodedStream.cs
- ReaderContextStackData.cs
- ReverseInheritProperty.cs
- ServiceDebugBehavior.cs
- CodeBlockBuilder.cs
- WebBrowserNavigatingEventHandler.cs
- HuffModule.cs
- ConfigXmlAttribute.cs
- HttpCookie.cs
- ProxySimple.cs
- MgmtConfigurationRecord.cs
- ToolboxItemFilterAttribute.cs
- AccessDataSource.cs
- SqlClientMetaDataCollectionNames.cs