Oboe  1.2
A library for creating real-time audio apps on Android
AudioStreamBase.h
1 /*
2  * Copyright 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef OBOE_STREAM_BASE_H_
18 #define OBOE_STREAM_BASE_H_
19 
20 #include <memory>
21 #include "oboe/AudioStreamCallback.h"
22 #include "oboe/Definitions.h"
23 
24 namespace oboe {
25 
30 public:
31 
32  AudioStreamBase() {}
33 
34  virtual ~AudioStreamBase() = default;
35 
36  // This class only contains primitives so we can use default constructor and copy methods.
37 
41  AudioStreamBase(const AudioStreamBase&) = default;
42 
46  AudioStreamBase& operator=(const AudioStreamBase&) = default;
47 
51  int32_t getChannelCount() const { return mChannelCount; }
52 
56  Direction getDirection() const { return mDirection; }
57 
61  int32_t getSampleRate() const { return mSampleRate; }
62 
66  int32_t getFramesPerCallback() const { return mFramesPerCallback; }
67 
71  AudioFormat getFormat() const { return mFormat; }
72 
79  virtual int32_t getBufferSizeInFrames() { return mBufferSizeInFrames; }
80 
84  virtual int32_t getBufferCapacityInFrames() const { return mBufferCapacityInFrames; }
85 
90 
95 
99  int32_t getDeviceId() const { return mDeviceId; }
100 
105  return mStreamCallback;
106  }
107 
111  Usage getUsage() const { return mUsage; }
112 
117 
122 
126  SessionId getSessionId() const { return mSessionId; }
127 
128 protected:
129 
149 
153  AudioFormat mFormat = AudioFormat::Unspecified;
157  PerformanceMode mPerformanceMode = PerformanceMode::None;
158 
162  ContentType mContentType = ContentType::Music;
164  InputPreset mInputPreset = InputPreset::VoiceRecognition;
166  SessionId mSessionId = SessionId::None;
167 };
168 
169 } // namespace oboe
170 
171 #endif /* OBOE_STREAM_BASE_H_ */
int32_t mBufferSizeInFrames
Definition: AudioStreamBase.h:143
SessionId mSessionId
Definition: AudioStreamBase.h:166
Direction mDirection
Definition: AudioStreamBase.h:155
int32_t getDeviceId() const
Definition: AudioStreamBase.h:99
AudioFormat mFormat
Definition: AudioStreamBase.h:153
int32_t getFramesPerCallback() const
Definition: AudioStreamBase.h:66
ContentType mContentType
Definition: AudioStreamBase.h:162
PerformanceMode
Definition: Definitions.h:192
SessionId
Definition: Definitions.h:382
PerformanceMode mPerformanceMode
Definition: AudioStreamBase.h:157
PerformanceMode getPerformanceMode() const
Definition: AudioStreamBase.h:94
int32_t getChannelCount() const
Definition: AudioStreamBase.h:51
SessionId getSessionId() const
Definition: AudioStreamBase.h:126
Definition: AudioStreamCallback.h:33
SharingMode mSharingMode
Definition: AudioStreamBase.h:151
int32_t mChannelCount
Definition: AudioStreamBase.h:135
AudioFormat getFormat() const
Definition: AudioStreamBase.h:71
ContentType
Definition: Definitions.h:315
int32_t mDeviceId
Definition: AudioStreamBase.h:139
ContentType getContentType() const
Definition: AudioStreamBase.h:116
Usage mUsage
Definition: AudioStreamBase.h:160
Usage
Definition: Definitions.h:239
int32_t getSampleRate() const
Definition: AudioStreamBase.h:61
int32_t mSampleRate
Definition: AudioStreamBase.h:137
AudioStreamCallback * getCallback() const
Definition: AudioStreamBase.h:104
int32_t mFramesPerBurst
Definition: AudioStreamBase.h:148
SharingMode getSharingMode() const
Definition: AudioStreamBase.h:89
Definition: AudioStreamBase.h:29
int32_t mBufferCapacityInFrames
Definition: AudioStreamBase.h:141
AudioStreamBase & operator=(const AudioStreamBase &)=default
virtual int32_t getBufferSizeInFrames()
Definition: AudioStreamBase.h:79
AudioFormat
Definition: Definitions.h:94
constexpr int32_t kUnspecified
Definition: Definitions.h:32
virtual int32_t getBufferCapacityInFrames() const
Definition: AudioStreamBase.h:84
Definition: AudioStream.h:31
InputPreset mInputPreset
Definition: AudioStreamBase.h:164
AudioStreamCallback * mStreamCallback
Definition: AudioStreamBase.h:131
Direction
Definition: Definitions.h:78
Direction getDirection() const
Definition: AudioStreamBase.h:56
SharingMode
Definition: Definitions.h:167
InputPreset
Definition: Definitions.h:348
int32_t mFramesPerCallback
Definition: AudioStreamBase.h:133
Usage getUsage() const
Definition: AudioStreamBase.h:111
InputPreset getInputPreset() const
Definition: AudioStreamBase.h:121