gearmulator

Emulation of classic VA synths of the late 90s/2000s that are based on Motorola 56300 family DSPs
Log | Files | Refs | Submodules | README | LICENSE

SystemHostApiIterator.hxx (1493B)


      1 #ifndef INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX
      2 #define INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX
      3 
      4 // ---------------------------------------------------------------------------------------
      5 
      6 #include <iterator>
      7 #include <cstddef>
      8 
      9 #include "portaudiocpp/System.hxx"
     10 
     11 // ---------------------------------------------------------------------------------------
     12 
     13 // Forward declaration(s):
     14 namespace portaudio
     15 {
     16 	class HostApi;
     17 }
     18 
     19 // ---------------------------------------------------------------------------------------
     20 
     21 // Declaration(s):
     22 namespace portaudio
     23 {
     24 
     25 
     26 	//////
     27 	/// @brief Iterator class for iterating through all HostApis in a System.
     28 	///
     29 	/// Compliant with the STL bidirectional iterator concept.
     30 	//////
     31 	class System::HostApiIterator
     32 	{
     33 	public:
     34 		typedef std::bidirectional_iterator_tag iterator_category;
     35 		typedef Device value_type;
     36 		typedef ptrdiff_t difference_type;
     37 		typedef HostApi * pointer;
     38 		typedef HostApi & reference;
     39 
     40 		HostApi &operator*() const;
     41 		HostApi *operator->() const;
     42 
     43 		HostApiIterator &operator++();
     44 		HostApiIterator operator++(int);
     45 		HostApiIterator &operator--();
     46 		HostApiIterator operator--(int);
     47 
     48 		bool operator==(const HostApiIterator &rhs) const;
     49 		bool operator!=(const HostApiIterator &rhs) const;
     50 
     51 	private:
     52 		friend class System;
     53 		HostApi **ptr_;
     54 	};
     55 
     56 
     57 } // namespace portaudio
     58 
     59 // ---------------------------------------------------------------------------------------
     60 
     61 #endif // INCLUDED_PORTAUDIO_SYSTEMHOSTAPIITERATOR_HXX