Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Synthesis / InstalledVoice.cs / 1 / InstalledVoice.cs
//------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Speech.AudioFormat;
using System.Speech.Internal;
using System.Speech.Internal.ObjectTokens;
using System.Speech.Internal.Synthesis;
using System.Speech.Synthesis.TtsEngine;
using System.Threading;
using RegistryDataKey = System.Speech.Internal.ObjectTokens.RegistryDataKey;
using RegistryEntry = System.Collections.Generic.KeyValuePair;
#pragma warning disable 1634, 1691 // Allows suppression of certain PreSharp messages.
namespace System.Speech.Synthesis
{
///
/// TODOC
///
[DebuggerDisplay ("{VoiceInfo.Name} [{Enabled ? \"Enabled\" : \"Disabled\"}]")]
public class InstalledVoice
{
//*******************************************************************
//
// Constructors
//
//*******************************************************************
#region Constructors
internal InstalledVoice (VoiceSynthesis voiceSynthesizer, VoiceInfo voice)
{
_voiceSynthesizer = voiceSynthesizer;
_voice = voice;
_enabled = true;
}
#endregion
//********************************************************************
//
// Public Properties
//
//*******************************************************************
#region public Properties
///
/// TODOC
///
public VoiceInfo VoiceInfo
{
get
{
return _voice;
}
}
///
/// TODOC
///
public bool Enabled
{
get
{
return _enabled;
}
set
{
SetEnabledFlag (value, true);
}
}
#endregion Events
//********************************************************************
//
// Public Methods
//
//********************************************************************
#region public Methods
/// TODOC
public override bool Equals (object obj)
{
InstalledVoice ti2 = obj as InstalledVoice;
if (ti2 == null)
{
return false;
}
return VoiceInfo.Name == ti2.VoiceInfo.Name && VoiceInfo.Age == ti2.VoiceInfo.Age && VoiceInfo.Gender == ti2.VoiceInfo.Gender && VoiceInfo.Culture.Equals (ti2.VoiceInfo.Culture);
}
/// TODOC
public override int GetHashCode ()
{
return VoiceInfo.Name.GetHashCode ();
}
#endregion Events
//*******************************************************************
//
// Internal Methods
//
//********************************************************************
#region Internal Methods
internal static InstalledVoice Find (List list, VoiceInfo voiceId)
{
foreach (InstalledVoice ti in list)
{
if (ti.Enabled && ti.VoiceInfo.Equals (voiceId))
{
return ti;
}
}
return null;
}
internal static InstalledVoice FirstEnabled (List list, CultureInfo culture)
{
InstalledVoice voiceFirst = null;
foreach (InstalledVoice ti in list)
{
if (ti.Enabled)
{
if (Helpers.CompareInvariantCulture (ti.VoiceInfo.Culture, culture))
{
return ti;
}
if (voiceFirst == null)
{
voiceFirst = ti;
}
}
}
return voiceFirst;
}
internal void SetEnabledFlag (bool value, bool switchContext)
{
try
{
if (_enabled != value)
{
_enabled = value;
if (_enabled == false)
{
// reset the default voice if necessary
if (_voice.Equals (_voiceSynthesizer.CurrentVoice (switchContext).VoiceInfo))
{
_voiceSynthesizer.Voice = null;
}
}
else
{
// reset the default voice if necessary. This new voice could be the default
_voiceSynthesizer.Voice = null;
}
}
}
// If no voice can be set, ignore the error
catch (InvalidOperationException)
{
// reset to the default voice.
_voiceSynthesizer.Voice = null;
}
}
#endregion
//*******************************************************************
//
// Private Fields
//
//*******************************************************************
#region Private Fields
private VoiceInfo _voice;
private bool _enabled;
#pragma warning disable 6524 // The voice synthesizer cannot be disposed when this object is deleted.
private VoiceSynthesis _voiceSynthesizer;
#pragma warning restore 6524
#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
- DbgUtil.cs
- PtsHelper.cs
- MenuCommands.cs
- ApplicationDirectoryMembershipCondition.cs
- MethodBody.cs
- TransformCryptoHandle.cs
- CalendarDesigner.cs
- ReaderWriterLock.cs
- PreProcessInputEventArgs.cs
- FamilyMap.cs
- TypeListConverter.cs
- Substitution.cs
- RequestCachingSection.cs
- ExtentKey.cs
- FormsAuthenticationCredentials.cs
- HtmlLinkAdapter.cs
- CommittableTransaction.cs
- BaseCodeDomTreeGenerator.cs
- MessageFilterException.cs
- PasswordBoxAutomationPeer.cs
- UxThemeWrapper.cs
- SqlMetaData.cs
- AnnotationComponentManager.cs
- RuntimeResourceSet.cs
- QuaternionRotation3D.cs
- ReadingWritingEntityEventArgs.cs
- HostProtectionPermission.cs
- HostedTransportConfigurationManager.cs
- SecurityVersion.cs
- Model3D.cs
- UnknownBitmapEncoder.cs
- Scheduling.cs
- _ProxyChain.cs
- IdentityReference.cs
- SqlBulkCopyColumnMapping.cs
- metadatamappinghashervisitor.cs
- TypeBuilder.cs
- DesignerProperties.cs
- TextOptions.cs
- QilPatternFactory.cs
- GiveFeedbackEvent.cs
- ScopelessEnumAttribute.cs
- EmptyReadOnlyDictionaryInternal.cs
- TextFragmentEngine.cs
- ImpersonateTokenRef.cs
- TrustLevel.cs
- COSERVERINFO.cs
- PolicyConversionContext.cs
- DocumentOrderQuery.cs
- GeometryCollection.cs
- LinkTarget.cs
- PropertyInfoSet.cs
- CompilerScope.cs
- ValidationRuleCollection.cs
- XmlSerializationGeneratedCode.cs
- ParamArrayAttribute.cs
- XmlQueryStaticData.cs
- TextParagraphCache.cs
- NameValueConfigurationCollection.cs
- ToolStripPanelRow.cs
- DeobfuscatingStream.cs
- SiteIdentityPermission.cs
- WebPartDisplayModeCollection.cs
- CmsInterop.cs
- EditorPart.cs
- ResXBuildProvider.cs
- Geometry3D.cs
- ServiceModelEnumValidator.cs
- Input.cs
- SqlWorkflowPersistenceService.cs
- SessionPageStatePersister.cs
- TaiwanLunisolarCalendar.cs
- MediaSystem.cs
- CollectionEditorDialog.cs
- SHA384.cs
- CryptoApi.cs
- Documentation.cs
- SetterBase.cs
- ChangeNode.cs
- ClassGenerator.cs
- MethodSet.cs
- ItemsControl.cs
- EncoderReplacementFallback.cs
- TemplateBamlRecordReader.cs
- TimeIntervalCollection.cs
- EventBuilder.cs
- FigureHelper.cs
- ProviderConnectionPointCollection.cs
- AttachmentCollection.cs
- DataException.cs
- PixelFormatConverter.cs
- StorageMappingItemLoader.cs
- XmlSerializerVersionAttribute.cs
- DataGridViewCellCollection.cs
- ContractUtils.cs
- TemplateControlBuildProvider.cs
- TCPListener.cs
- Misc.cs
- BoolExpr.cs
- SyndicationElementExtensionCollection.cs