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