Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
18 #ifndef __MDA_COMMON_AUDIO_H__
19 #define __MDA_COMMON_AUDIO_H__
21 // Standard EPOC32 includes
24 // Public Media Server includes
25 #include <mda/common/base.h>
26 #include <mda/common/resource.h>
27 //#include <mda/common/controller.h>
28 #include <mda/common/audio.hrh>
29 #include <mda/common/audiostream.hrh>
31 MDA_UID(KUidMdaPrioritySettings)
32 MDA_UID(KUidMdaMediaTypeAudio) // Audio data type Uid
33 MDA_UID(KUidMdaLocalSoundDevice) // Local audio stream location
34 MDA_UID(KUidMdaClipLocationMaxWriteLength)
35 MDA_UID(KUidMdaTelephonySoundDevice) // Telephony audio stream location
36 MDA_UID(KUidMdaClientPCMSoundDevice) // Client PCM audio stream location
37 MDA_UID(KUidMdaToneGeneratorDevice) // Tone Generator Device
38 MDA_UID(KUidMdaClipFormatWav) // Wav Audio Clip Format Uid
40 MDA_UID(KUidMdaAudioOutputStreamDevice) // Output Stream Device
42 MDA_UID(KUidMdaWavCodec) // Wav Codec Type Uid
43 MDA_UID(KUidMdaWavPcmCodec) // Wav Codec Uids
44 MDA_UID(KUidMdaWavAlawCodec)
45 MDA_UID(KUidMdaWavMulawCodec)
46 MDA_UID(KUidMdaWavImaAdpcmCodec)
49 MDA_UID(KUidMdaClipFormatAu) // Sun/Next "Au" Audio Clip format Uid
50 MDA_UID(KUidMdaAuCodec) // Sun/Next "Au" Audio Codec Type Uid
51 MDA_UID(KUidMdaAuMulawCodec) // Sun/Next "Au" Audio Codec Uids
52 MDA_UID(KUidMdaAu8PcmCodec)
53 MDA_UID(KUidMdaAu16PcmCodec)
54 MDA_UID(KUidMdaAuAlawCodec)
56 MDA_UID(KUidMdaClipFormatRawAudio) // Raw Audio Clip format Uid
57 MDA_UID(KUidMdaRawAudioCodec) // Raw Audio Codec Type Uid
58 MDA_UID(KUidMdaRawAudioMulawCodec)
59 MDA_UID(KUidMdaRawAudioAlawCodec)
60 MDA_UID(KUidMdaRawAudioS8PcmCodec) // Signed 8bit
61 MDA_UID(KUidMdaRawAudioU8PcmCodec) // Unsigned 8bit
62 MDA_UID(KUidMdaRawAudioSL16PcmCodec) // Signed little-endian 16bit
63 MDA_UID(KUidMdaRawAudioSB16PcmCodec) // Signed big-endian 16bit
64 MDA_UID(KUidMdaRawAudioUL16PcmCodec) // Unsigned little-endian 16bit
65 MDA_UID(KUidMdaRawAudioUB16PcmCodec) // Unsigned big-endian 16bit
67 MDA_UID(KUidMdaTelephonyStateQuery) // Telephony state query
68 MDA_UID(KUidMdaAudioStreamVolumeRamp) // Audio stream volume ramp
70 MDA_UID(KUidMdaDataTypeSettings)
72 MDA_UID(KUidMdaClipFormatRawAmr) // AMR Audio Clip Format Uid
73 MDA_UID(KUidMdaRawAmrCodec) // AMR Codec Type Uid
78 const TInt KMdaClipLocationMaxWriteLengthNone = -1;
86 Generic Audio Parameters
88 class TMdaPrioritySettings : public TMdaPackage
91 inline TMdaPrioritySettings();
94 Absolute priority of a client of the MMF Server.
96 Used by the policy server to determine which client should gain access to the sound device.
98 The priority which should be an integer in the range -100 to +100.
102 The priority preference that expresses the nature of the priority that can be none,
103 time (or speed), quality or both time and quality.
105 If this is set to EMdaPriorityPreferenceTime then the audio data is time sensitive. The playback
106 operation fails if it cannot happen when requested but degraded output such as mixing or muting
109 If this is set to EMdaPriorityPreferenceQuality then the audio data must be played at the best possible
110 quality (for example, it must not be degraded by muting or mixing). The playback operation is delayed
111 until the sound device is available for exclusive use.
113 If this is set to EMdaPriorityPreferenceTimeAndQuality then the audio data is both time and quality
114 sensitive. The playback operation fails if it cannot happen immediately at the highest quality.
116 TMdaPriorityPreference iPref;
125 Base class for specific data type config packages
127 class TMdaDatatypeSettings : public TMdaPackage
130 inline TMdaDatatypeSettings(TUid aUid,TInt aDerivedSize);
133 inline TMdaDatatypeSettings::TMdaDatatypeSettings(TUid aUid,TInt aDerivedSize) :
134 TMdaPackage(KUidMdaDataTypeSettings,aUid,aDerivedSize) {}
140 The settings for audio data played through the media server.
142 These can be the settings for an audio clip, for streamed audio data, or can be the capabilities
143 of the sound device. The sample rate and number of channels apply to the audio sample, the maximum
144 volume applies to the output device and the volume setting can apply to either, depending on the
145 device. An object of this class is a public data member of class CMdaAudioType and also can be
146 passed to CMdaAudioOutputStream::Open().
150 @see CMdaAudioOutputStream::Open()
152 class TMdaAudioDataSettings : public TMdaDatatypeSettings
156 Audio capabilities, which include the sample rate and number of channels. The iCaps
157 member is a combination of these flags.
162 // Sampled audio capabilities
164 /** If specified, the sample rate iSampleRate is the only one supported. If not
165 specified, multiple sample rates may be supported.
167 ESampleRateFixed = 0x00000001,
169 /** If specified, all sample rates between the minimum and the maximum are supported.
171 ESampleRateAnyInRange = 0x00000002,
173 /** The audio sample supports a sample rate of 8.000KHz.
175 ESampleRate8000Hz = 0x00000010,
177 /** The audio sample supports a sample rate of 11.025KHz.
179 ESampleRate11025Hz = 0x00000040,
181 /** The audio sample supports a sample rate of 12.000KHz.
183 ESampleRate12000Hz = 0x00000080,
185 /** The audio sample supports a sample rate of 16.000KHz.
187 ESampleRate16000Hz = 0x00000100,
189 /** The audio sample supports a sample rate of 22.000KHz.
191 ESampleRate22050Hz = 0x00000400,
193 /** The audio sample supports a sample rate of 24.000KHz.
195 ESampleRate24000Hz = 0x00000800,
197 /** The audio sample supports a sample rate of 32.000KHz.
199 ESampleRate32000Hz = 0x00001000,
201 /** The audio sample supports a sample rate of 44.100KHz.
203 ESampleRate44100Hz = 0x00004000,
205 /** The audio sample supports a sample rate of 48.000KHz.
207 ESampleRate48000Hz = 0x00010000,
209 /** The audio sample supports a sample rate of 96.000KHz.
211 ESampleRate96000Hz = 0x00020000,
213 /** The audio sample supports a sample rate of 64.000KHz.
215 ESampleRate64000Hz = 0x00040000,
217 // Channel related - applies to sampled
219 /** The audio sample supports mono.
221 EChannelsMono = 0x02000000,
223 /** The audio sample supports stereo.
225 EChannelsStereo = 0x04000000,
229 ERoutingControl = 0x08000000,
231 /** True if data flow is synchronised with real time (e.g. stream)
233 ERealTime = 0x10000000
236 /** Mutually exclusive flags that specify whether audio data is sent to the local device (speakers)
237 or the network (phone line) or both. The iFlags member uses these flags.
242 /** The sound data is only sent to the network.
244 ENoLocalRouting = 0x00000001,
246 /** The sound data is only sent to the local device.
248 ENoNetworkRouting = 0x00000002
251 inline TMdaAudioDataSettings();
252 inline void Query(); // Call this when you just want to have caps and maxvolume filled
254 // Fixed values - must be queried
257 Specifies the capabilities of the audio sample. Its value is a combination of the flags
258 contained in the TAudioCaps enum.
263 The maximum volume of the audio device.
265 TInt iMaxVolume; // One means fixed volume (zero not valid)
269 The sample rate of the audio sample.
274 The number of channels for the audio sample.
279 The volume. Whether this applies to the audio device or to the audio sample is device-dependent.
284 The flags. Its value can be either of the flags contained in the TAudioFlags enum.
289 // Wav Config Packages
295 The format for .wav audio clips.
297 An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
299 class TMdaWavClipFormat : public TMdaClipFormat
302 inline TMdaWavClipFormat();
309 The base class for codecs used by .wav audio files.
311 An object derived from this class can be used to specify the compression algorithm to use when recording or
312 converting a .wav audio clip. When playing back a .wav clip, the codec is not specified: the media server
313 identifies the correct one to use.
315 class TMdaWavCodec : public TMdaPackage
318 inline TMdaWavCodec(); // Unknown type
320 inline TMdaWavCodec(TUid aUid,TInt aDerivedSize);
327 The codec for uncompressed 8 or 16 bit PCM .wav format sound data.
329 This codec copies the data unchanged from source to destination.
331 class TMdaPcmWavCodec : public TMdaWavCodec
336 Indicates whether the sound is sampled using 8 or 16 bits.
340 /** The sound is sampled using 8 bits.
344 /** The sound is sampled using 16 bits.
349 inline TMdaPcmWavCodec(TBits aBits=E16BitPcm);
352 Indicates whether the sound is sampled using 8 or 16 bits.
361 The codec for .wav audio data compressed using the A-Law algorithm.
363 class TMdaAlawWavCodec : public TMdaWavCodec
366 inline TMdaAlawWavCodec();
373 The codec for .wav audio data compressed using the mu-law algorithm.
375 class TMdaMulawWavCodec : public TMdaWavCodec
378 inline TMdaMulawWavCodec();
385 The codec for .wav audio data compressed using the IMA-ADPCM algorithm.
387 class TMdaImaAdpcmWavCodec : public TMdaWavCodec
390 inline TMdaImaAdpcmWavCodec();
394 // Sun/NeXT "Au" Config Packages
399 The format for .au audio clips.
401 An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
403 class TMdaAuClipFormat : public TMdaClipFormat
406 inline TMdaAuClipFormat();
413 The base class for codecs used by .au audio files.
415 An object derived from this class can be used to specify the compression algorithm to use when recording
416 or converting a .au audio clip (whose format is TMdaAuClipFormat). When playing back a .au clip, the
417 codec is not specified: the media server identifies the correct one to use.
419 class TMdaAuCodec : public TMdaPackage
422 inline TMdaAuCodec(); // Unknown type
424 inline TMdaAuCodec(TUid aUid,TInt aDerivedSize);
431 The codec for 8 bit PCM .au audio data.
433 class TMdaPcm8BitAuCodec : public TMdaAuCodec
436 inline TMdaPcm8BitAuCodec();
443 The codec for 16 bit PCM .au audio data.
445 class TMdaPcm16BitAuCodec : public TMdaAuCodec
448 inline TMdaPcm16BitAuCodec();
455 The codec for .au audio data compressed using the A-Law algorithm.
457 class TMdaAlawAuCodec : public TMdaAuCodec
460 inline TMdaAlawAuCodec();
467 The codec for .au audio data compressed using the mu-law algorithm.
469 class TMdaMulawAuCodec : public TMdaAuCodec
472 inline TMdaMulawAuCodec();
475 // Raw Audio Config Packages
480 Audio format for raw audio clips.
482 An object of this type can be passed to CMdaAudioRecorderUtility::OpenL() or CMdaAudioConvertUtility::OpenL().
484 class TMdaRawAudioClipFormat : public TMdaClipFormat
487 inline TMdaRawAudioClipFormat();
494 The base class for raw audio codecs.
496 An object derived from this class can be used to specify the algorithm to use when opening a
497 raw audio clip (whose format is TMdaRawAudioClipFormat).
499 Raw audio clips are have no header information, so that when opening one, the user must supply
500 a codec and a package containing the settings appropriate for the data in the clip.
502 @see TMdaRawAudioClipFormat
503 @see CMdaAudioConvertUtility::OpenL()
504 @see CMdaAudioRecorderUtility::OpenL()
506 class TMdaRawAudioCodec : public TMdaPackage
509 inline TMdaRawAudioCodec(); // Unknown type
511 inline TMdaRawAudioCodec(TUid aUid,TInt aDerivedSize);
518 The codec for raw audio data compressed using the mu-law algorithm.
520 class TMdaMulawRawAudioCodec : public TMdaRawAudioCodec
523 inline TMdaMulawRawAudioCodec();
530 The codec for raw audio data compressed using the A-Law algorithm.
532 class TMdaAlawRawAudioCodec : public TMdaRawAudioCodec
535 inline TMdaAlawRawAudioCodec();
542 The codec for signed 8 bit PCM raw audio data.
544 class TMdaS8PcmRawAudioCodec : public TMdaRawAudioCodec
547 inline TMdaS8PcmRawAudioCodec();
554 The codec for unsigned 8 bit PCM raw audio data.
556 class TMdaU8PcmRawAudioCodec : public TMdaRawAudioCodec
559 inline TMdaU8PcmRawAudioCodec();
566 The codec for signed little-endian 16 bit PCM raw audio data.
568 class TMdaSL16RawAudioCodec : public TMdaRawAudioCodec
571 inline TMdaSL16RawAudioCodec();
578 The codec for signed big-endian 16 bit PCM raw audio data.
580 class TMdaSB16RawAudioCodec : public TMdaRawAudioCodec
583 inline TMdaSB16RawAudioCodec();
590 The codec for unsigned little-endian 16 bit PCM raw audio data.
592 class TMdaUL16RawAudioCodec : public TMdaRawAudioCodec
595 inline TMdaUL16RawAudioCodec();
602 The codec for unsigned big-endian 16 bit PCM raw audio data.
604 class TMdaUB16RawAudioCodec : public TMdaRawAudioCodec
607 inline TMdaUB16RawAudioCodec();
614 Local Audio Stream Device
615 Control local microphone/speaker audio stream
616 May not function during telephone call
618 class TMdaLocalAudioDevice : public TMdaStreamDevice
621 inline TMdaLocalAudioDevice();
628 Telephony Audio Stream Device
629 Control telephony microphone+downlink/speaker+uplink audio stream
630 Only functional during telephone call
632 class TMdaTelephonyAudioDevice : public TMdaStreamDevice
635 inline TMdaTelephonyAudioDevice();
642 This class is used in a ResourceConfig on a telephony port
643 to determine the current state of telephony
645 class TMdaTelephonyStateQuery : public TMdaPackage
648 inline TMdaTelephonyStateQuery();
650 TBool iIsTelephonyActive;
657 Client PCM Audio Stream Device
658 Used to configure a 16bit PCM audio stream to/from client
660 class TMdaClientPCMAudioDevice : public TMdaStreamDevice
663 inline TMdaClientPCMAudioDevice();
671 Volume ramping control on audio stream devices
673 class TMdaAudioStreamVolumeRamp : public TMdaPackage
676 inline TMdaAudioStreamVolumeRamp();
678 TTimeIntervalMicroSeconds iDuration;
685 Default constructor. The member data is not initialised.
687 inline TMdaAudioDataSettings::TMdaAudioDataSettings() :
688 TMdaDatatypeSettings(KUidMdaMediaTypeAudio,sizeof(TMdaAudioDataSettings))
690 Mem::FillZ(&iSampleRate,sizeof(TInt)*4);
694 Sets the number of channels, the sample rate and the volume to KMdaUnknown (–1). Call this function when you
695 only want to have the iCaps and iMaxVolume members filled.
697 inline void TMdaAudioDataSettings::Query()
699 iChannels = KMdaUnknown;
700 iSampleRate = KMdaUnknown;
701 iVolume = KMdaUnknown;
702 }// Call this when you just want to have caps and maxvolume filled
705 The default constructor initialises the object so that it can be identified by the media server.
707 inline TMdaWavClipFormat::TMdaWavClipFormat() :
708 TMdaClipFormat(KUidMdaClipFormatWav,sizeof(TMdaWavClipFormat)) {}
711 The default constructor initialises the package so that it can be identified by the media server.
713 inline TMdaWavCodec::TMdaWavCodec() :
714 TMdaPackage(KUidMdaWavCodec,KNullUid,sizeof(TMdaWavCodec)) {}
716 inline TMdaWavCodec::TMdaWavCodec(TUid aUid, TInt aDerivedSize) :
717 TMdaPackage(KUidMdaWavCodec,aUid,aDerivedSize) {}
720 Constructs the package with a flag that indicates whether the sound is sampled using 8 or 16 bits.
723 Indicates whether the sound is sampled using 8 or 16 bits.
725 inline TMdaPcmWavCodec::TMdaPcmWavCodec(TBits aBits) :
726 TMdaWavCodec(KUidMdaWavPcmCodec,sizeof(TMdaPcmWavCodec)), iBits(aBits) {}
729 The default constructor initialises the package so that it can be identified by the media server.
731 inline TMdaAlawWavCodec::TMdaAlawWavCodec() :
732 TMdaWavCodec(KUidMdaWavAlawCodec,sizeof(TMdaAlawWavCodec)) {}
735 The default constructor initialises the object so that it can be identified by the media server.
737 inline TMdaMulawWavCodec::TMdaMulawWavCodec() :
738 TMdaWavCodec(KUidMdaWavMulawCodec,sizeof(TMdaMulawWavCodec)) {}
741 The default constructor initialises the package so that it can be identified by the media server.
743 inline TMdaImaAdpcmWavCodec::TMdaImaAdpcmWavCodec() :
744 TMdaWavCodec(KUidMdaWavImaAdpcmCodec,sizeof(TMdaImaAdpcmWavCodec)) {}
747 The default constructor initialises the object so that it can be identified by the media server.
749 inline TMdaAuClipFormat::TMdaAuClipFormat() :
750 TMdaClipFormat(KUidMdaClipFormatAu,sizeof(TMdaAuClipFormat)) {}
753 The default constructor initialises the package so that it can be identified by the media server.
755 inline TMdaAuCodec::TMdaAuCodec() :
756 TMdaPackage(KUidMdaAuCodec,KNullUid,sizeof(TMdaAuCodec)) {}
758 inline TMdaAuCodec::TMdaAuCodec(TUid aUid,TInt aDerivedSize) :
759 TMdaPackage(KUidMdaAuCodec,aUid,aDerivedSize) {}
762 The default constructor initialises the package so that it can be identified by the media server.
764 inline TMdaPcm16BitAuCodec::TMdaPcm16BitAuCodec() :
765 TMdaAuCodec(KUidMdaAu16PcmCodec,sizeof(TMdaPcm16BitAuCodec)) {}
768 The default constructor initialises the package so that it can be identified by the media server.
770 inline TMdaPcm8BitAuCodec::TMdaPcm8BitAuCodec() :
771 TMdaAuCodec(KUidMdaAu8PcmCodec,sizeof(TMdaPcm8BitAuCodec)) {}
774 The default constructor initialises the package so that it can be identified by the media server.
776 inline TMdaAlawAuCodec::TMdaAlawAuCodec() :
777 TMdaAuCodec(KUidMdaAuAlawCodec,sizeof(TMdaAlawAuCodec)) {}
780 The default constructor initialises the object so that it can be identified by the media server.
782 inline TMdaMulawAuCodec::TMdaMulawAuCodec() :
783 TMdaAuCodec(KUidMdaAuMulawCodec,sizeof(TMdaMulawAuCodec)) {}
786 The default constructor initialises the object so that it can be identified by the media server.
788 inline TMdaRawAudioClipFormat::TMdaRawAudioClipFormat() :
789 TMdaClipFormat(KUidMdaClipFormatRawAudio,sizeof(TMdaRawAudioClipFormat)) {}
792 The default constructor initialises the package so that it can be identified by the media server.
794 inline TMdaRawAudioCodec::TMdaRawAudioCodec() :
795 TMdaPackage(KUidMdaRawAudioCodec,KNullUid,sizeof(TMdaRawAudioCodec)) {}
797 inline TMdaRawAudioCodec::TMdaRawAudioCodec(TUid aUid,TInt aDerivedSize) :
798 TMdaPackage(KUidMdaRawAudioCodec,aUid,aDerivedSize) {}
801 The default constructor initialises the object so that it can be identified by the media server.
803 inline TMdaMulawRawAudioCodec::TMdaMulawRawAudioCodec() :
804 TMdaRawAudioCodec(KUidMdaRawAudioMulawCodec,sizeof(TMdaMulawRawAudioCodec)) {}
807 The default constructor initialises the package so that it can be identified by the media server.
809 inline TMdaAlawRawAudioCodec::TMdaAlawRawAudioCodec() :
810 TMdaRawAudioCodec(KUidMdaRawAudioAlawCodec,sizeof(TMdaAlawRawAudioCodec)) {}
813 The default constructor initialises the package so that it can be identified by the media server.
815 inline TMdaS8PcmRawAudioCodec::TMdaS8PcmRawAudioCodec() :
816 TMdaRawAudioCodec(KUidMdaRawAudioS8PcmCodec,sizeof(TMdaS8PcmRawAudioCodec)) {}
819 The default constructor initialises the package so that it can be identified by the media server.
821 inline TMdaU8PcmRawAudioCodec::TMdaU8PcmRawAudioCodec() :
822 TMdaRawAudioCodec(KUidMdaRawAudioU8PcmCodec,sizeof(TMdaU8PcmRawAudioCodec)) {}
825 The default constructor initialises the package so that it can be identified by the media server.
827 inline TMdaSL16RawAudioCodec::TMdaSL16RawAudioCodec() :
828 TMdaRawAudioCodec(KUidMdaRawAudioSL16PcmCodec,sizeof(TMdaSL16RawAudioCodec)) {}
831 The default constructor initialises the package so that it can be identified by the media server.
833 inline TMdaSB16RawAudioCodec::TMdaSB16RawAudioCodec() :
834 TMdaRawAudioCodec(KUidMdaRawAudioSB16PcmCodec,sizeof(TMdaSB16RawAudioCodec)) {}
837 The default constructor initialises the package so that it can be identified by the media server.
839 inline TMdaUL16RawAudioCodec::TMdaUL16RawAudioCodec() :
840 TMdaRawAudioCodec(KUidMdaRawAudioUL16PcmCodec,sizeof(TMdaUL16RawAudioCodec)) {}
843 The default constructor initialises the package so that it can be identified by the media server.
845 inline TMdaUB16RawAudioCodec::TMdaUB16RawAudioCodec() :
846 TMdaRawAudioCodec(KUidMdaRawAudioUB16PcmCodec,sizeof(TMdaUB16RawAudioCodec)) {}
848 inline TMdaLocalAudioDevice::TMdaLocalAudioDevice() :
849 TMdaStreamDevice(KUidMdaLocalSoundDevice,sizeof(TMdaLocalAudioDevice)) {}
851 inline TMdaTelephonyAudioDevice::TMdaTelephonyAudioDevice() :
852 TMdaStreamDevice(KUidMdaTelephonySoundDevice,sizeof(TMdaTelephonyAudioDevice)) {}
854 inline TMdaClientPCMAudioDevice::TMdaClientPCMAudioDevice() :
855 TMdaStreamDevice(KUidMdaClientPCMSoundDevice,sizeof(TMdaClientPCMAudioDevice)) {}
857 inline TMdaAudioStreamVolumeRamp::TMdaAudioStreamVolumeRamp() :
858 TMdaPackage(KUidMdaAudioStreamVolumeRamp,KUidMdaAudioStreamVolumeRamp,sizeof(TMdaAudioStreamVolumeRamp)) {}
860 inline TMdaTelephonyStateQuery::TMdaTelephonyStateQuery() :
861 TMdaPackage(KUidMdaTelephonySoundDevice,KUidMdaTelephonyStateQuery,sizeof(TMdaTelephonyStateQuery)) {}
863 inline TMdaPrioritySettings::TMdaPrioritySettings() :
864 TMdaPackage(KUidMdaPrioritySettings,KUidMdaPrioritySettings,sizeof(TMdaPrioritySettings)) {}