41 #if !defined(__CAStreamRangedDescription_h__)
42 #define __CAStreamRangedDescription_h__
49 #include <CoreAudio/AudioHardware.h>
52 #include "CAAudioValueRange.h"
53 #include "CAStreamBasicDescription.h"
59 class CAStreamRangedDescription
61 public AudioStreamRangedDescription
66 static const AudioStreamRangedDescription sEmpty;
70 CAStreamRangedDescription() { memset(
this, 0,
sizeof(AudioStreamRangedDescription)); }
71 CAStreamRangedDescription(
const CAStreamRangedDescription& inFormat) { mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange; }
72 CAStreamRangedDescription(
const AudioStreamRangedDescription& inFormat) { mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange; }
73 CAStreamRangedDescription(
const AudioStreamBasicDescription& inFormat) { mFormat = inFormat; mSampleRateRange.mMinimum = inFormat.mSampleRate; mSampleRateRange.mMaximum = inFormat.mSampleRate; }
74 CAStreamRangedDescription(
const AudioStreamBasicDescription& inFormat,
const AudioValueRange& inSampleRateRange) { mFormat = inFormat; mSampleRateRange = inSampleRateRange; }
75 CAStreamRangedDescription& operator=(
const CAStreamRangedDescription& inFormat) { mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange;
return *
this; }
76 CAStreamRangedDescription& operator=(
const AudioStreamRangedDescription& inFormat) { mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange;
return *
this; }
78 static bool IsMixable(
const AudioStreamRangedDescription& inDescription) {
return (inDescription.mFormat.mFormatID == kAudioFormatLinearPCM) && ((inDescription.mFormat.mFormatFlags & kIsNonMixableFlag) == 0); }
80 static void PrintToLog(
const AudioStreamRangedDescription& inDesc);
84 inline bool operator<(
const AudioStreamRangedDescription& x,
const AudioStreamRangedDescription& y) {
return (x.mFormat < y.mFormat) && (x.mSampleRateRange < y.mSampleRateRange); }
85 inline bool operator==(
const AudioStreamRangedDescription& x,
const AudioStreamRangedDescription& y) {
return (x.mFormat == y.mFormat) && (x.mSampleRateRange == y.mSampleRateRange); }
86 #if TARGET_OS_MAC || (TARGET_OS_WIN32 && (_MSC_VER > 600))
87 inline bool operator!=(
const AudioStreamRangedDescription& x,
const AudioStreamRangedDescription& y) {
return !(x == y); }
88 inline bool operator<=(
const AudioStreamRangedDescription& x,
const AudioStreamRangedDescription& y) {
return (x < y) || (x == y); }
89 inline bool operator>=(
const AudioStreamRangedDescription& x,
const AudioStreamRangedDescription& y) {
return !(x < y); }
90 inline bool operator>(
const AudioStreamRangedDescription& x,
const AudioStreamRangedDescription& y) {
return !((x < y) || (x == y)); }
bool TTFOUNDATION_EXPORT operator!=(const TTObject &anObject, const TTObject &anotherObject)
Compare two objects for inequality.
bool TTFOUNDATION_EXPORT operator==(const TTObject &anObject, const TTObject &anotherObject)
Compare two objects for equality.