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