cannam@89: #ifndef INCLUDED_PORTAUDIO_ASIODEVICEADAPTER_HXX cannam@89: #define INCLUDED_PORTAUDIO_ASIODEVICEADAPTER_HXX cannam@89: cannam@89: namespace portaudio cannam@89: { cannam@89: cannam@89: // Forward declaration(s): cannam@89: class Device; cannam@89: cannam@89: // Declaration(s): cannam@89: ////// cannam@89: /// @brief Adapts the given Device to an ASIO specific extension. cannam@89: /// cannam@89: /// Deleting the AsioDeviceAdapter does not affect the underlaying cannam@89: /// Device. cannam@89: ////// cannam@89: class AsioDeviceAdapter cannam@89: { cannam@89: public: cannam@89: AsioDeviceAdapter(Device &device); cannam@89: cannam@89: Device &device(); cannam@89: cannam@89: long minBufferSize() const; cannam@89: long maxBufferSize() const; cannam@89: long preferredBufferSize() const; cannam@89: long granularity() const; cannam@89: cannam@89: void showControlPanel(void *systemSpecific); cannam@89: cannam@89: const char *inputChannelName(int channelIndex) const; cannam@89: const char *outputChannelName(int channelIndex) const; cannam@89: cannam@89: private: cannam@89: Device *device_; cannam@89: cannam@89: long minBufferSize_; cannam@89: long maxBufferSize_; cannam@89: long preferredBufferSize_; cannam@89: long granularity_; cannam@89: }; cannam@89: } cannam@89: cannam@89: #endif // INCLUDED_PORTAUDIO_ASIODEVICEADAPTER_HXX