Chris@4
|
1 #ifndef INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
|
Chris@4
|
2 #define INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
|
Chris@4
|
3
|
Chris@4
|
4 // ---------------------------------------------------------------------------------------
|
Chris@4
|
5
|
Chris@4
|
6 #include <cstddef>
|
Chris@4
|
7
|
Chris@4
|
8 #include "portaudio.h"
|
Chris@4
|
9
|
Chris@4
|
10 #include "portaudiocpp/System.hxx"
|
Chris@4
|
11 #include "portaudiocpp/SampleDataFormat.hxx"
|
Chris@4
|
12
|
Chris@4
|
13 // ---------------------------------------------------------------------------------------
|
Chris@4
|
14
|
Chris@4
|
15 // Forward declaration(s):
|
Chris@4
|
16 namespace portaudio
|
Chris@4
|
17 {
|
Chris@4
|
18 class Device;
|
Chris@4
|
19 }
|
Chris@4
|
20
|
Chris@4
|
21 // ---------------------------------------------------------------------------------------
|
Chris@4
|
22
|
Chris@4
|
23 // Declaration(s):
|
Chris@4
|
24 namespace portaudio
|
Chris@4
|
25 {
|
Chris@4
|
26
|
Chris@4
|
27 //////
|
Chris@4
|
28 /// @brief All parameters for one direction (either in or out) of a Stream. Together with
|
Chris@4
|
29 /// parameters common to both directions, two DirectionSpecificStreamParameters can make up
|
Chris@4
|
30 /// a StreamParameters object which contains all parameters for a Stream.
|
Chris@4
|
31 //////
|
Chris@4
|
32 class DirectionSpecificStreamParameters
|
Chris@4
|
33 {
|
Chris@4
|
34 public:
|
Chris@4
|
35 static DirectionSpecificStreamParameters null();
|
Chris@4
|
36
|
Chris@4
|
37 DirectionSpecificStreamParameters();
|
Chris@4
|
38 DirectionSpecificStreamParameters(const Device &device, int numChannels, SampleDataFormat format,
|
Chris@4
|
39 bool interleaved, PaTime suggestedLatency, void *hostApiSpecificStreamInfo);
|
Chris@4
|
40
|
Chris@4
|
41 // Set up methods:
|
Chris@4
|
42 void setDevice(const Device &device);
|
Chris@4
|
43 void setNumChannels(int numChannels);
|
Chris@4
|
44
|
Chris@4
|
45 void setSampleFormat(SampleDataFormat format, bool interleaved = true);
|
Chris@4
|
46 void setHostApiSpecificSampleFormat(PaSampleFormat format, bool interleaved = true);
|
Chris@4
|
47
|
Chris@4
|
48 void setSuggestedLatency(PaTime latency);
|
Chris@4
|
49
|
Chris@4
|
50 void setHostApiSpecificStreamInfo(void *streamInfo);
|
Chris@4
|
51
|
Chris@4
|
52 // Accessor methods:
|
Chris@4
|
53 PaStreamParameters *paStreamParameters();
|
Chris@4
|
54 const PaStreamParameters *paStreamParameters() const;
|
Chris@4
|
55
|
Chris@4
|
56 Device &device() const;
|
Chris@4
|
57 int numChannels() const;
|
Chris@4
|
58
|
Chris@4
|
59 SampleDataFormat sampleFormat() const;
|
Chris@4
|
60 bool isSampleFormatInterleaved() const;
|
Chris@4
|
61 bool isSampleFormatHostApiSpecific() const;
|
Chris@4
|
62 PaSampleFormat hostApiSpecificSampleFormat() const;
|
Chris@4
|
63
|
Chris@4
|
64 PaTime suggestedLatency() const;
|
Chris@4
|
65
|
Chris@4
|
66 void *hostApiSpecificStreamInfo() const;
|
Chris@4
|
67
|
Chris@4
|
68 private:
|
Chris@4
|
69 PaStreamParameters paStreamParameters_;
|
Chris@4
|
70 };
|
Chris@4
|
71
|
Chris@4
|
72
|
Chris@4
|
73 } // namespace portaudio
|
Chris@4
|
74
|
Chris@4
|
75 // ---------------------------------------------------------------------------------------
|
Chris@4
|
76
|
Chris@4
|
77 #endif // INCLUDED_PORTAUDIO_SINGLEDIRECTIONSTREAMPARAMETERS_HXX
|