@@ -98,32 +98,6 @@ struct CAPropertyAddress
9898 static bool IsCongruentElement (AudioObjectPropertyElement inElement1, AudioObjectPropertyElement inElement2) { return (inElement1 == inElement2) || (inElement1 == kAudioObjectPropertyElementWildcard ) || (inElement2 == kAudioObjectPropertyElementWildcard ); }
9999 static bool IsCongruentAddress (const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) { return IsCongruentScope (inAddress1.mScope , inAddress2.mScope ) && IsCongruentSelector (inAddress1.mSelector , inAddress2.mSelector ) && IsCongruentElement (inAddress1.mElement , inAddress2.mElement ); }
100100 static bool IsCongruentLessThanAddress (const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) { bool theAnswer = false ; if (!IsCongruentScope (inAddress1.mScope , inAddress2.mScope )) { theAnswer = inAddress1.mScope < inAddress2.mScope ; } else if (!IsCongruentSelector (inAddress1.mSelector , inAddress2.mSelector )) { theAnswer = inAddress1.mSelector < inAddress2.mSelector ; } else if (!IsCongruentElement (inAddress1.mElement , inAddress2.mElement )) { theAnswer = inAddress1.mElement < inAddress2.mElement ; } return theAnswer; }
101-
102- // STL Helpers
103- public:
104- #pragma clang diagnostic push
105- #pragma clang diagnostic ignored "-Wdeprecated"
106- struct EqualTo : public std ::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool >
107- {
108- bool operator ()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const { return IsSameAddress (inAddress1, inAddress2); }
109- };
110-
111- struct LessThan : public std ::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool >
112- {
113- bool operator ()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const { return IsLessThanAddress (inAddress1, inAddress2); }
114- };
115-
116- struct CongruentEqualTo : public std ::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool >
117- {
118- bool operator ()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const { return IsCongruentAddress (inAddress1, inAddress2); }
119- };
120-
121- struct CongruentLessThan : public std ::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool >
122- {
123- bool operator ()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const { return IsCongruentLessThanAddress (inAddress1, inAddress2); }
124- };
125- #pragma clang diagnostic pop
126-
127101};
128102
129103// ==================================================================================================
@@ -160,19 +134,16 @@ class CAPropertyAddressList
160134 const AudioObjectPropertyAddress* GetItems () const { return &(*mAddressList .begin ()); }
161135 AudioObjectPropertyAddress* GetItems () { return &(*mAddressList .begin ()); }
162136
163- #pragma clang diagnostic push
164- #pragma clang diagnostic ignored "-Wdeprecated"
165- bool HasItem (const AudioObjectPropertyAddress& inAddress) const { AddressList::const_iterator theIterator = std::find_if (mAddressList .begin (), mAddressList .end (), std::bind1st (CAPropertyAddress::CongruentEqualTo (), inAddress)); return theIterator != mAddressList .end (); }
166- bool HasExactItem (const AudioObjectPropertyAddress& inAddress) const { AddressList::const_iterator theIterator = std::find_if (mAddressList .begin (), mAddressList .end (), std::bind1st (CAPropertyAddress::EqualTo (), inAddress)); return theIterator != mAddressList .end (); }
167- #pragma clang diagnostic pop
137+ bool HasItem (const AudioObjectPropertyAddress& inAddress) const { AddressList::const_iterator theIterator = std::find_if (mAddressList .begin (), mAddressList .end (), [&inAddress](const CAPropertyAddress& addr) { return CAPropertyAddress::IsCongruentAddress (addr, inAddress); }); return theIterator != mAddressList .end (); }
138+ bool HasExactItem (const AudioObjectPropertyAddress& inAddress) const { AddressList::const_iterator theIterator = std::find_if (mAddressList .begin (), mAddressList .end (), [&inAddress](const CAPropertyAddress& addr) { return CAPropertyAddress::IsSameAddress (addr, inAddress); }); return theIterator != mAddressList .end (); }
168139
169140 void AppendItem (const AudioObjectPropertyAddress& inAddress) { mAddressList .push_back (inAddress); }
170141 void AppendUniqueItem (const AudioObjectPropertyAddress& inAddress) { if (!HasItem (inAddress)) { mAddressList .push_back (inAddress); } }
171142 void AppendUniqueExactItem (const AudioObjectPropertyAddress& inAddress) { if (!HasExactItem (inAddress)) { mAddressList .push_back (inAddress); } }
172143 void InsertItemAtIndex (UInt32 inIndex, const AudioObjectPropertyAddress& inAddress) { if (inIndex < mAddressList .size ()) { AddressList::iterator theIterator = mAddressList .begin (); std::advance (theIterator, static_cast <int >(inIndex)); mAddressList .insert (theIterator, inAddress); } else { mAddressList .push_back (inAddress); } }
173144#pragma clang diagnostic push
174145#pragma clang diagnostic ignored "-Wdeprecated"
175- void EraseExactItem (const AudioObjectPropertyAddress& inAddress) { AddressList::iterator theIterator = std::find_if (mAddressList .begin (), mAddressList .end (), std::bind1st ( CAPropertyAddress::EqualTo () , inAddress)); if (theIterator != mAddressList .end ()) { mAddressList .erase (theIterator); } }
146+ void EraseExactItem (const AudioObjectPropertyAddress& inAddress) { AddressList::iterator theIterator = std::find_if (mAddressList .begin (), mAddressList .end (), [&inAddress]( const CAPropertyAddress& addr) { return CAPropertyAddress::IsSameAddress (addr , inAddress); } ); if (theIterator != mAddressList .end ()) { mAddressList .erase (theIterator); } }
176147#pragma clang diagnostic pop
177148 void EraseItemAtIndex (UInt32 inIndex) { if (inIndex < mAddressList .size ()) { AddressList::iterator theIterator = mAddressList .begin (); std::advance (theIterator, static_cast <int >(inIndex)); mAddressList .erase (theIterator); } }
178149 void EraseAllItems () { mAddressList .clear (); }
0 commit comments