Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / AudioFormat / SpeechAudioFormatInfo.cs / 1 / SpeechAudioFormatInfo.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------- using System; using System.ComponentModel; using System.Speech.Internal.Synthesis; namespace System.Speech.AudioFormat { /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo"]/*' /> [Serializable] #if !SPEECHSERVER public #else internal #endif class SpeechAudioFormatInfo { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors private SpeechAudioFormatInfo (EncodingFormat encodingFormat, int samplesPerSecond, short bitsPerSample, short channelCount, byte [] formatSpecificData) { if (encodingFormat == 0) { throw new ArgumentException (SR.Get (SRID.CannotUseCustomFormat), "encodingFormat"); } if (samplesPerSecond <= 0) { throw new ArgumentOutOfRangeException ("samplesPerSecond", SR.Get (SRID.MustBeGreaterThanZero)); } if (bitsPerSample <= 0) { throw new ArgumentOutOfRangeException ("bitsPerSample", SR.Get (SRID.MustBeGreaterThanZero)); } if (channelCount <= 0) { throw new ArgumentOutOfRangeException ("channelCount", SR.Get (SRID.MustBeGreaterThanZero)); } _encodingFormat = encodingFormat; _samplesPerSecond = samplesPerSecond; _bitsPerSample = bitsPerSample; _channelCount = channelCount; if (formatSpecificData == null) { _formatSpecificData = new byte [0]; } else { _formatSpecificData = (byte []) formatSpecificData.Clone (); } switch (encodingFormat) { case EncodingFormat.ALaw: case EncodingFormat.ULaw: if (bitsPerSample != 8) { throw new ArgumentOutOfRangeException ("bitsPerSample"); } if (formatSpecificData != null && formatSpecificData.Length != 0) { throw new ArgumentOutOfRangeException ("formatSpecificData"); } break; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.AudioFormatInfo1"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public SpeechAudioFormatInfo (EncodingFormat encodingFormat, int samplesPerSecond, int bitsPerSample, int channelCount, int averageBytesPerSecond, int blockAlign, byte [] formatSpecificData) : this (encodingFormat, samplesPerSecond, (short) bitsPerSample, (short) channelCount, formatSpecificData) { // Don't explicitly check these are sensible values - allow flexibility here as some formats may do unexpected things here. if (averageBytesPerSecond <= 0) { throw new ArgumentOutOfRangeException ("averageBytesPerSecond", SR.Get (SRID.MustBeGreaterThanZero)); } if (blockAlign <= 0) { throw new ArgumentOutOfRangeException ("blockAlign", SR.Get (SRID.MustBeGreaterThanZero)); } _averageBytesPerSecond = averageBytesPerSecond; _blockAlign = (short) blockAlign; } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.AudioFormatInfo2"]/*' /> public SpeechAudioFormatInfo (int samplesPerSecond, AudioBitsPerSample bitsPerSample, AudioChannel channel) : this (EncodingFormat.Pcm, samplesPerSecond, (short) bitsPerSample, (short) channel, null) { // Don't explicitly check these are sensible values - allow flexibility here as some formats may do unexpected things here. _blockAlign = (short) (_channelCount * (_bitsPerSample / 8)); _averageBytesPerSecond = _samplesPerSecond * _blockAlign; } #endregion //******************************************************************** // // Public Properties // //******************************************************************* #region Public Properties /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.AverageBytesPerSecond"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public int AverageBytesPerSecond { get { return _averageBytesPerSecond; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.BitsPerSample"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public int BitsPerSample { get { return _bitsPerSample; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.BlockAlign"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public int BlockAlign { get { return _blockAlign; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.Format"]/*' /> public EncodingFormat EncodingFormat { get { return _encodingFormat; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.NumberOfChannels"]/*' /> public int ChannelCount { get { return _channelCount; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.SamplesPerSecond"]/*' /> public int SamplesPerSecond { get { return _samplesPerSecond; } } #endregion //******************************************************************** // // Public Methods // //******************************************************************** #region Public Methods /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.FormatSpecificData"]/*' /> public byte [] FormatSpecificData () { return (byte []) _formatSpecificData.Clone (); } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.Equals"]/*' /> public override bool Equals (object obj) { SpeechAudioFormatInfo refObj = obj as SpeechAudioFormatInfo; if (refObj == null) { return false; } if (!(_averageBytesPerSecond.Equals (refObj._averageBytesPerSecond) && _bitsPerSample.Equals (refObj._bitsPerSample) && _blockAlign.Equals (refObj._blockAlign) && _encodingFormat.Equals (refObj._encodingFormat) && _channelCount.Equals (refObj._channelCount) && _samplesPerSecond.Equals (refObj._samplesPerSecond))) { return false; } if (_formatSpecificData.Length != refObj._formatSpecificData.Length) { return false; } for (int i = 0; i < _formatSpecificData.Length; i++) { if (_formatSpecificData [i] != refObj._formatSpecificData [i]) { return false; } } return true; } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.GetHashCode"]/*' /> public override int GetHashCode () { return _averageBytesPerSecond.GetHashCode (); } #endregion //******************************************************************* // // Internal Methods // //******************************************************************** #region Internal Methods #if !SPEECHSERVER internal byte [] WaveFormat { get { WAVEFORMATEX wfx = new WAVEFORMATEX (); wfx.wFormatTag = (short) EncodingFormat; wfx.nChannels = (short) ChannelCount; wfx.nSamplesPerSec = SamplesPerSecond; wfx.nAvgBytesPerSec = AverageBytesPerSecond; wfx.nBlockAlign = (short) BlockAlign; wfx.wBitsPerSample = (short) BitsPerSample; wfx.cbSize = (short) FormatSpecificData ().Length; byte [] abWfx = wfx.ToBytes (); if (wfx.cbSize > 0) { byte [] wfxTemp = new byte [abWfx.Length + wfx.cbSize]; Array.Copy (abWfx, wfxTemp, abWfx.Length); Array.Copy (FormatSpecificData (), 0, wfxTemp, abWfx.Length, wfx.cbSize); abWfx = wfxTemp; } return abWfx; } } #endif #endregion //******************************************************************* // // Private Fields // //******************************************************************* #region Private Fields private int _averageBytesPerSecond; private short _bitsPerSample; private short _blockAlign; private EncodingFormat _encodingFormat; private short _channelCount; private int _samplesPerSecond; private byte [] _formatSpecificData; #endregion } //******************************************************************* // // Public Properties // //******************************************************************** #region Public Properties ////// TODOC /// #if !SPEECHSERVER public #else internal #endif enum AudioChannel { ////// TODOC /// Mono = 1, ////// TODOC /// Stereo = 2 } ////// TODOC /// #if !SPEECHSERVER public #else internal #endif enum AudioBitsPerSample { ////// TODOC /// Eight = 8, ////// TODOC /// Sixteen = 16 } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------- using System; using System.ComponentModel; using System.Speech.Internal.Synthesis; namespace System.Speech.AudioFormat { /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo"]/*' /> [Serializable] #if !SPEECHSERVER public #else internal #endif class SpeechAudioFormatInfo { //******************************************************************* // // Constructors // //******************************************************************* #region Constructors private SpeechAudioFormatInfo (EncodingFormat encodingFormat, int samplesPerSecond, short bitsPerSample, short channelCount, byte [] formatSpecificData) { if (encodingFormat == 0) { throw new ArgumentException (SR.Get (SRID.CannotUseCustomFormat), "encodingFormat"); } if (samplesPerSecond <= 0) { throw new ArgumentOutOfRangeException ("samplesPerSecond", SR.Get (SRID.MustBeGreaterThanZero)); } if (bitsPerSample <= 0) { throw new ArgumentOutOfRangeException ("bitsPerSample", SR.Get (SRID.MustBeGreaterThanZero)); } if (channelCount <= 0) { throw new ArgumentOutOfRangeException ("channelCount", SR.Get (SRID.MustBeGreaterThanZero)); } _encodingFormat = encodingFormat; _samplesPerSecond = samplesPerSecond; _bitsPerSample = bitsPerSample; _channelCount = channelCount; if (formatSpecificData == null) { _formatSpecificData = new byte [0]; } else { _formatSpecificData = (byte []) formatSpecificData.Clone (); } switch (encodingFormat) { case EncodingFormat.ALaw: case EncodingFormat.ULaw: if (bitsPerSample != 8) { throw new ArgumentOutOfRangeException ("bitsPerSample"); } if (formatSpecificData != null && formatSpecificData.Length != 0) { throw new ArgumentOutOfRangeException ("formatSpecificData"); } break; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.AudioFormatInfo1"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public SpeechAudioFormatInfo (EncodingFormat encodingFormat, int samplesPerSecond, int bitsPerSample, int channelCount, int averageBytesPerSecond, int blockAlign, byte [] formatSpecificData) : this (encodingFormat, samplesPerSecond, (short) bitsPerSample, (short) channelCount, formatSpecificData) { // Don't explicitly check these are sensible values - allow flexibility here as some formats may do unexpected things here. if (averageBytesPerSecond <= 0) { throw new ArgumentOutOfRangeException ("averageBytesPerSecond", SR.Get (SRID.MustBeGreaterThanZero)); } if (blockAlign <= 0) { throw new ArgumentOutOfRangeException ("blockAlign", SR.Get (SRID.MustBeGreaterThanZero)); } _averageBytesPerSecond = averageBytesPerSecond; _blockAlign = (short) blockAlign; } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.AudioFormatInfo2"]/*' /> public SpeechAudioFormatInfo (int samplesPerSecond, AudioBitsPerSample bitsPerSample, AudioChannel channel) : this (EncodingFormat.Pcm, samplesPerSecond, (short) bitsPerSample, (short) channel, null) { // Don't explicitly check these are sensible values - allow flexibility here as some formats may do unexpected things here. _blockAlign = (short) (_channelCount * (_bitsPerSample / 8)); _averageBytesPerSecond = _samplesPerSecond * _blockAlign; } #endregion //******************************************************************** // // Public Properties // //******************************************************************* #region Public Properties /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.AverageBytesPerSecond"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public int AverageBytesPerSecond { get { return _averageBytesPerSecond; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.BitsPerSample"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public int BitsPerSample { get { return _bitsPerSample; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.BlockAlign"]/*' /> [EditorBrowsable (EditorBrowsableState.Advanced)] public int BlockAlign { get { return _blockAlign; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.Format"]/*' /> public EncodingFormat EncodingFormat { get { return _encodingFormat; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.NumberOfChannels"]/*' /> public int ChannelCount { get { return _channelCount; } } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.SamplesPerSecond"]/*' /> public int SamplesPerSecond { get { return _samplesPerSecond; } } #endregion //******************************************************************** // // Public Methods // //******************************************************************** #region Public Methods /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.FormatSpecificData"]/*' /> public byte [] FormatSpecificData () { return (byte []) _formatSpecificData.Clone (); } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.Equals"]/*' /> public override bool Equals (object obj) { SpeechAudioFormatInfo refObj = obj as SpeechAudioFormatInfo; if (refObj == null) { return false; } if (!(_averageBytesPerSecond.Equals (refObj._averageBytesPerSecond) && _bitsPerSample.Equals (refObj._bitsPerSample) && _blockAlign.Equals (refObj._blockAlign) && _encodingFormat.Equals (refObj._encodingFormat) && _channelCount.Equals (refObj._channelCount) && _samplesPerSecond.Equals (refObj._samplesPerSecond))) { return false; } if (_formatSpecificData.Length != refObj._formatSpecificData.Length) { return false; } for (int i = 0; i < _formatSpecificData.Length; i++) { if (_formatSpecificData [i] != refObj._formatSpecificData [i]) { return false; } } return true; } /// TODOC <_include file='doc\SpeechAudioFormatInfo.uex' path='docs/doc[@for="SpeechAudioFormatInfo.GetHashCode"]/*' /> public override int GetHashCode () { return _averageBytesPerSecond.GetHashCode (); } #endregion //******************************************************************* // // Internal Methods // //******************************************************************** #region Internal Methods #if !SPEECHSERVER internal byte [] WaveFormat { get { WAVEFORMATEX wfx = new WAVEFORMATEX (); wfx.wFormatTag = (short) EncodingFormat; wfx.nChannels = (short) ChannelCount; wfx.nSamplesPerSec = SamplesPerSecond; wfx.nAvgBytesPerSec = AverageBytesPerSecond; wfx.nBlockAlign = (short) BlockAlign; wfx.wBitsPerSample = (short) BitsPerSample; wfx.cbSize = (short) FormatSpecificData ().Length; byte [] abWfx = wfx.ToBytes (); if (wfx.cbSize > 0) { byte [] wfxTemp = new byte [abWfx.Length + wfx.cbSize]; Array.Copy (abWfx, wfxTemp, abWfx.Length); Array.Copy (FormatSpecificData (), 0, wfxTemp, abWfx.Length, wfx.cbSize); abWfx = wfxTemp; } return abWfx; } } #endif #endregion //******************************************************************* // // Private Fields // //******************************************************************* #region Private Fields private int _averageBytesPerSecond; private short _bitsPerSample; private short _blockAlign; private EncodingFormat _encodingFormat; private short _channelCount; private int _samplesPerSecond; private byte [] _formatSpecificData; #endregion } //******************************************************************* // // Public Properties // //******************************************************************** #region Public Properties ////// TODOC /// #if !SPEECHSERVER public #else internal #endif enum AudioChannel { ////// TODOC /// Mono = 1, ////// TODOC /// Stereo = 2 } ////// TODOC /// #if !SPEECHSERVER public #else internal #endif enum AudioBitsPerSample { ////// TODOC /// Eight = 8, ////// TODOC /// Sixteen = 16 } #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
- ScopelessEnumAttribute.cs
- SafeLibraryHandle.cs
- selecteditemcollection.cs
- ObjectDisposedException.cs
- StorageEntityTypeMapping.cs
- MenuItem.cs
- WebColorConverter.cs
- ObjectReferenceStack.cs
- Content.cs
- CodeDirectionExpression.cs
- SpinWait.cs
- indexingfiltermarshaler.cs
- DataGridViewHeaderCell.cs
- EdmItemCollection.cs
- XPathMessageContext.cs
- SmtpMail.cs
- BehaviorEditorPart.cs
- AutomationIdentifierGuids.cs
- HostedBindingBehavior.cs
- QuaternionRotation3D.cs
- VScrollProperties.cs
- StringOutput.cs
- AppSecurityManager.cs
- arclist.cs
- HttpProxyTransportBindingElement.cs
- Header.cs
- TypeUnloadedException.cs
- SmtpSection.cs
- ComplexTypeEmitter.cs
- HtmlControlAdapter.cs
- X509UI.cs
- KnownTypeAttribute.cs
- EntityContainerEntitySetDefiningQuery.cs
- OdbcInfoMessageEvent.cs
- RenamedEventArgs.cs
- PositiveTimeSpanValidator.cs
- XmlReaderSettings.cs
- PageParser.cs
- HyperLinkStyle.cs
- XsltArgumentList.cs
- QilPatternVisitor.cs
- FixedFlowMap.cs
- CodeMemberEvent.cs
- DataGridDetailsPresenter.cs
- ConfigurationSchemaErrors.cs
- SetMemberBinder.cs
- ListBindingHelper.cs
- XamlStyleSerializer.cs
- XmlHierarchicalEnumerable.cs
- XmlILStorageConverter.cs
- storepermissionattribute.cs
- DynamicEndpointElement.cs
- ToolStripSeparator.cs
- IncomingWebResponseContext.cs
- AxHost.cs
- MetabaseServerConfig.cs
- ImageList.cs
- InvokeWebService.cs
- BuilderElements.cs
- PropertyGridEditorPart.cs
- ArrayItemReference.cs
- IntSecurity.cs
- Utils.cs
- DispatcherHooks.cs
- RowParagraph.cs
- ServiceMetadataExtension.cs
- TabControl.cs
- ThousandthOfEmRealPoints.cs
- ClientSettingsStore.cs
- XsltFunctions.cs
- DetailsViewRow.cs
- connectionpool.cs
- ContentPropertyAttribute.cs
- Rijndael.cs
- TrustSection.cs
- ProvidePropertyAttribute.cs
- AutoGeneratedField.cs
- connectionpool.cs
- DataGridRowDetailsEventArgs.cs
- CachingHintValidation.cs
- RTLAwareMessageBox.cs
- SimpleColumnProvider.cs
- RegexParser.cs
- Internal.cs
- KeyFrames.cs
- DocumentSchemaValidator.cs
- SignatureHelper.cs
- DbProviderServices.cs
- KeyGestureValueSerializer.cs
- TaiwanCalendar.cs
- ObjectListCommandsPage.cs
- RowUpdatedEventArgs.cs
- _WinHttpWebProxyDataBuilder.cs
- DataGridColumn.cs
- cookie.cs
- SymmetricKeyWrap.cs
- SchemaObjectWriter.cs
- RenameRuleObjectDialog.cs
- SafeTokenHandle.cs
- Partitioner.cs