8 #include <audio/service/audioservice.h>
9 #include <audio/utility/safeptr.h>
12 #include <nap/service.h>
13 #include <utility/threading.h>
16 #include <portaudio.h>
25 class PortAudioService;
46 std::string mHostApi =
"";
52 std::string mInputDevice =
"";
58 std::string mOutputDevice =
"";
64 int mInputChannelCount = 1;
70 int mOutputChannelCount = 2;
75 bool mDisableInput =
false;
80 bool mDisableOutput =
false;
85 float mSampleRate = 44100;
90 int mBufferSize = 1024;
97 int mInternalBufferSize = 1024;
109 bool mAllowChannelCountFailure =
true;
114 bool mAllowDeviceFailure =
true;
133 void registerObjectCreators(
rtti::Factory& factory)
override;
143 void shutdown()
override;
148 void preShutdown()
override;
163 unsigned int getHostApiCount();
170 const PaHostApiInfo& getHostApiInfo(
unsigned int hostApiIndex);
175 std::vector<const PaHostApiInfo*> getHostApis();
180 std::string getHostApiName(
unsigned int hostApiIndex);
186 unsigned int getDeviceCount(
unsigned int hostApiIndex);
194 const PaDeviceInfo& getDeviceInfo(
unsigned int hostApiIndex,
unsigned int localDeviceIndex);
201 const PaDeviceInfo& getDeviceInfo(
unsigned int deviceIndex);
208 std::vector<const PaDeviceInfo*> getDevices(
unsigned int hostApiIndex);
220 std::string getDeviceName(
unsigned int hostApiIndex,
unsigned int localDeviceIndex);
230 int getInputDeviceIndex(
int hostApiIndex,
const std::string& device);
240 int getOutputDeviceIndex(
int hostApiIndex,
const std::string& device);
246 int getDeviceIndex(
int hostApiIndex,
int hostApiDeviceIndex);
254 int getHostApiIndex(
const std::string& hostApi);
274 int getCurrentBufferSize()
const {
return getConfiguration<PortAudioServiceConfiguration>()->mDeviceSettings.mBufferSize; }
345 bool checkChannelCounts(
int inputDeviceIndex,
int outputDeviceIndex,
int& inputChannelCount,
349 PaStream* mStream =
nullptr;
350 int mHostApiIndex = -1;
351 int mInputDeviceIndex = -1;
352 int mOutputDeviceIndex = -1;
353 bool mPortAudioInitialized =
false;
354 bool mMpg123Initialized =
false;
356 std::string mErrorMessage =
"";
virtual rtti::TypeInfo getServiceType() const
Definition: portaudioservice.h:34
bool getAllowChannelCountFailure()
Definition: portaudioservice.h:158
int getCurrentOutputDeviceIndex() const
Definition: portaudioservice.h:269
DeviceSettings mDeviceSettings
Definition: portaudioservice.h:103
int getCurrentHostApiIndex() const
Definition: portaudioservice.h:259
Definition: errorstate.h:19
int getCurrentBufferSize() const
Definition: portaudioservice.h:274
Definition: portaudioservice.h:30
Definition: audioservice.h:26
Definition: audionodemanager.h:33
Definition: templateservice.h:8
int getCurrentInputDeviceIndex() const
Definition: portaudioservice.h:264
Definition: portaudioservice.h:39
bool isOpened()
Definition: portaudioservice.h:314
Definition: templateapp.h:17
rttr::type TypeInfo
Definition: typeinfo.h:140
Definition: portaudioservice.h:121
NodeManager & getNodeManager()
Definition: portaudioservice.h:153
const std::string & getErrorMessage() const
Definition: portaudioservice.h:324