Code:
/ DotNET / DotNET / 8.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PictureBox.cs
- ArglessEventHandlerProxy.cs
- EntityViewGenerationAttribute.cs
- TraceLog.cs
- RuntimeCompatibilityAttribute.cs
- MemoryFailPoint.cs
- ConfigurationValidatorAttribute.cs
- HttpHandler.cs
- PointAnimationUsingPath.cs
- IdentityModelDictionary.cs
- ImageSourceValueSerializer.cs
- CultureInfo.cs
- TypeUtils.cs
- Domain.cs
- HtmlPageAdapter.cs
- TextCollapsingProperties.cs
- AppliedDeviceFiltersDialog.cs
- StylusPointCollection.cs
- CompModSwitches.cs
- SafeFindHandle.cs
- GridSplitter.cs
- VisualProxy.cs
- SiteMapDesignerDataSourceView.cs
- DataBinder.cs
- DeviceContext2.cs
- WebPartConnection.cs
- WebPartAddingEventArgs.cs
- SortedSet.cs
- AppSettings.cs
- CatalogPartChrome.cs
- BufferAllocator.cs
- MonikerHelper.cs
- UrlMapping.cs
- FunctionImportMapping.cs
- TransformDescriptor.cs
- GZipDecoder.cs
- XamlStackWriter.cs
- Subtract.cs
- WindowsSlider.cs
- DynamicAttribute.cs
- SystemIPGlobalProperties.cs
- SiteMapNodeItemEventArgs.cs
- SourceChangedEventArgs.cs
- BufferedGraphicsManager.cs
- SmiEventStream.cs
- PageContent.cs
- _NegotiateClient.cs
- DecimalConverter.cs
- BinaryUtilClasses.cs
- BufferedConnection.cs
- HttpListenerElement.cs
- DependencyObjectPropertyDescriptor.cs
- SchemaManager.cs
- DefinitionBase.cs
- SafeCryptContextHandle.cs
- CodeVariableReferenceExpression.cs
- SamlAssertionKeyIdentifierClause.cs
- SqlCacheDependency.cs
- ListSortDescription.cs
- GlobalEventManager.cs
- StatusBarDrawItemEvent.cs
- NonBatchDirectoryCompiler.cs
- DiagnosticsConfiguration.cs
- HandleCollector.cs
- SymLanguageType.cs
- ResourceDefaultValueAttribute.cs
- DataViewSetting.cs
- ContextStaticAttribute.cs
- SessionEndingCancelEventArgs.cs
- SHA256.cs
- FastPropertyAccessor.cs
- AccessKeyManager.cs
- PrintController.cs
- FunctionUpdateCommand.cs
- RewritingValidator.cs
- ApplicationDirectory.cs
- TypeReference.cs
- DecimalAnimationBase.cs
- GAC.cs
- DependencyPropertyKey.cs
- ServiceBuildProvider.cs
- XmlConvert.cs
- ConditionalAttribute.cs
- XhtmlConformanceSection.cs
- StreamUpdate.cs
- Vector.cs
- FileDataSourceCache.cs
- TypeSystemProvider.cs
- UIntPtr.cs
- Selection.cs
- XmlnsCache.cs
- CursorConverter.cs
- ToolBarButtonClickEvent.cs
- AttributeUsageAttribute.cs
- AspNetHostingPermission.cs
- Behavior.cs
- ReadOnlyMetadataCollection.cs
- DocumentsTrace.cs
- AppLevelCompilationSectionCache.cs
- ButtonFieldBase.cs