41 #if !defined(__CAAudioValueRange_h__)
42 #define __CAAudioValueRange_h__
49 #if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)
50 #include <CoreAudio/CoreAudioTypes.h>
52 #include <CoreAudioTypes.h>
62 struct CAAudioValueRange
64 public AudioValueRange
69 CAAudioValueRange() { mMinimum = 0.0; mMaximum = 0.0; }
70 CAAudioValueRange(
const AudioValueRange& v) { mMinimum = v.mMinimum; mMaximum = v.mMaximum; }
71 CAAudioValueRange(Float64 inMinimum, Float64 inMaximum) { mMinimum = inMinimum; mMaximum = inMaximum; }
75 CAAudioValueRange& operator=(
const AudioValueRange& v) { mMinimum = v.mMinimum; mMaximum = v.mMaximum;
return *
this; }
79 static bool ContainsValue(
const AudioValueRange& inRange, Float64 inValue) {
return (inValue >= inRange.mMinimum) && (inValue <= inRange.mMaximum); }
80 static Float64 PickCommonSampleRate(
const AudioValueRange& inRange);
81 static bool IsStrictlyLessThan(
const AudioValueRange& x,
const AudioValueRange& y) {
return x.mMaximum < y.mMinimum; }
82 static bool IsStrictlyGreaterThan(
const AudioValueRange& x,
const AudioValueRange& y) {
return x.mMinimum > y.mMaximum; }
83 static bool IsStrictlyContainedBy(
const AudioValueRange& x,
const AudioValueRange& y) {
return (x.mMinimum >= y.mMinimum) && (x.mMaximum <= y.mMaximum); }
84 static bool OverlapsLow(
const AudioValueRange& x,
const AudioValueRange& y) {
return (x.mMinimum < y.mMinimum) && (x.mMaximum >= y.mMinimum) && (x.mMaximum <= y.mMaximum); }
85 static bool OverlapsHigh(
const AudioValueRange& x,
const AudioValueRange& y) {
return (x.mMinimum >= y.mMinimum) && (x.mMinimum <= y.mMaximum) && (x.mMaximum > y.mMaximum); }
86 static bool Intersection(
const AudioValueRange& x,
const AudioValueRange& y, AudioValueRange& outRange);
87 static bool Union(
const AudioValueRange& x,
const AudioValueRange& y, AudioValueRange& outRange);
93 public std::binary_function<AudioValueRange, AudioValueRange, bool>
95 bool operator()(
const AudioValueRange& x,
const AudioValueRange& y)
const
97 return x.mMinimum < y.mMinimum;
103 inline bool operator<(
const AudioValueRange& x,
const AudioValueRange& y) {
return x.mMinimum < y.mMinimum; }
104 inline bool operator==(
const AudioValueRange& x,
const AudioValueRange& y) {
return (x.mMinimum == y.mMinimum) && (x.mMaximum == y.mMaximum); }
105 inline bool operator!=(
const AudioValueRange& x,
const AudioValueRange& y) {
return !(x == y); }
106 inline bool operator<=(
const AudioValueRange& x,
const AudioValueRange& y) {
return (x < y) || (x == y); }
107 inline bool operator>=(
const AudioValueRange& x,
const AudioValueRange& y) {
return !(x < y); }
108 inline bool operator>(
const AudioValueRange& x,
const AudioValueRange& y) {
return !((x < y) || (x == y)); }
110 typedef std::vector<CAAudioValueRange> CAAudioValueRangeList;
111 void CAAudioValueRange_ComputeUnion(
const AudioValueRange& inRange,
const CAAudioValueRangeList& inRangeList, CAAudioValueRangeList& outUnion);
112 void CAAudioValueRange_ComputeIntersection(
const AudioValueRange& inRange,
const CAAudioValueRangeList& inRangeList, CAAudioValueRangeList& outIntersections);
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.