Loading media/libaaudio/examples/input_monitor/src/input_monitor.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -24,12 +24,11 @@ #include <aaudio/AAudio.h> #define SAMPLE_RATE 48000 #define NUM_SECONDS 10 #define NUM_SECONDS 6 #define NANOS_PER_MICROSECOND ((int64_t)1000) #define NANOS_PER_MILLISECOND (NANOS_PER_MICROSECOND * 1000) #define NANOS_PER_SECOND (NANOS_PER_MILLISECOND * 1000) #define DECAY_FACTOR 0.999 #define MIN_FRAMES_TO_READ 48 /* arbitrary, 1 msec at 48000 Hz */ static const char *getSharingModeText(aaudio_sharing_mode_t mode) { Loading Loading @@ -59,6 +58,7 @@ int main(int argc, char **argv) aaudio_audio_format_t actualDataFormat; const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_SHARED; //const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_EXCLUSIVE; aaudio_sharing_mode_t actualSharingMode; AAudioStreamBuilder *aaudioBuilder = nullptr; Loading Loading @@ -143,27 +143,27 @@ int main(int argc, char **argv) state = AAudioStream_getState(aaudioStream); printf("after start, state = %s\n", AAudio_convertStreamStateToText(state)); // Play for a while. // Record for a while. framesToRecord = actualSampleRate * NUM_SECONDS; framesLeft = framesToRecord; while (framesLeft > 0) { // Read audio data from the stream. int64_t timeoutNanos = 100 * NANOS_PER_MILLISECOND; const int64_t timeoutNanos = 100 * NANOS_PER_MILLISECOND; int minFrames = (framesToRecord < framesPerRead) ? framesToRecord : framesPerRead; int actual = AAudioStream_read(aaudioStream, data, minFrames, timeoutNanos); if (actual < 0) { fprintf(stderr, "ERROR - AAudioStream_read() returned %zd\n", actual); fprintf(stderr, "ERROR - AAudioStream_read() returned %d\n", actual); result = actual; goto finish; } else if (actual == 0) { fprintf(stderr, "WARNING - AAudioStream_read() returned %zd\n", actual); fprintf(stderr, "WARNING - AAudioStream_read() returned %d\n", actual); goto finish; } framesLeft -= actual; // Peak follower. // Peak finder. for (int frameIndex = 0; frameIndex < actual; frameIndex++) { float sample = data[frameIndex * actualSamplesPerFrame] * (1.0/32768); peakLevel *= DECAY_FACTOR; if (sample > peakLevel) { peakLevel = sample; } Loading @@ -177,6 +177,7 @@ int main(int argc, char **argv) printf("*"); } printf("\n"); peakLevel = 0.0; } } Loading @@ -184,9 +185,9 @@ int main(int argc, char **argv) printf("AAudioStream_getXRunCount %d\n", xRunCount); finish: delete[] data; AAudioStream_close(aaudioStream); AAudioStreamBuilder_delete(aaudioBuilder); delete[] data; printf("exiting - AAudio result = %d = %s\n", result, AAudio_convertResultToText(result)); return (result != AAUDIO_OK) ? EXIT_FAILURE : EXIT_SUCCESS; } Loading media/libaaudio/examples/input_monitor/src/input_monitor_callback.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public: AAudioStreamBuilder_setDirection(mBuilder, AAUDIO_DIRECTION_INPUT); AAudioStreamBuilder_setSharingMode(mBuilder, mRequestedSharingMode); AAudioStreamBuilder_setDataCallback(mBuilder, proc, userContext); AAudioStreamBuilder_setFormat(mBuilder, AAUDIO_FORMAT_PCM_FLOAT); AAudioStreamBuilder_setFormat(mBuilder, AAUDIO_FORMAT_PCM_I16); // Open an AAudioStream using the Builder. result = AAudioStreamBuilder_openStream(mBuilder, &mStream); Loading Loading @@ -285,7 +285,7 @@ int main(int argc, char **argv) if (result != AAUDIO_OK) { goto error; } sleep(1); usleep(2000 * 1000); result = recorder.start(); if (result != AAUDIO_OK) { fprintf(stderr, "ERROR - recorder.start() returned %d\n", result); Loading media/libaaudio/examples/loopback/src/loopback.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -344,8 +344,8 @@ int main(int argc, const char **argv) aaudio_audio_format_t actualInputFormat; aaudio_audio_format_t actualOutputFormat; //const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_EXCLUSIVE; const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_SHARED; const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_EXCLUSIVE; //const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_SHARED; aaudio_sharing_mode_t actualSharingMode; AAudioStreamBuilder *builder = nullptr; Loading media/libaaudio/src/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ LOCAL_SRC_FILES = \ fifo/FifoControllerBase.cpp \ client/AudioEndpoint.cpp \ client/AudioStreamInternal.cpp \ client/AudioStreamInternalCapture.cpp \ client/AudioStreamInternalPlay.cpp \ client/IsochronousClockModel.cpp \ binding/AudioEndpointParcelable.cpp \ binding/AAudioBinderClient.cpp \ Loading Loading @@ -99,6 +101,8 @@ LOCAL_SRC_FILES = core/AudioStream.cpp \ fifo/FifoControllerBase.cpp \ client/AudioEndpoint.cpp \ client/AudioStreamInternal.cpp \ client/AudioStreamInternalCapture.cpp \ client/AudioStreamInternalPlay.cpp \ client/IsochronousClockModel.cpp \ binding/AudioEndpointParcelable.cpp \ binding/AAudioBinderClient.cpp \ Loading media/libaaudio/src/binding/AAudioServiceDefinitions.h +1 −2 Original line number Diff line number Diff line Loading @@ -77,8 +77,7 @@ typedef struct EndpointDescriptor_s { // Set capacityInFrames to zero if Queue is unused. RingBufferDescriptor upMessageQueueDescriptor; // server to client RingBufferDescriptor downMessageQueueDescriptor; // client to server RingBufferDescriptor upDataQueueDescriptor; // eg. record RingBufferDescriptor downDataQueueDescriptor; // eg. playback RingBufferDescriptor dataQueueDescriptor; // playback or capture } EndpointDescriptor; } // namespace aaudio Loading Loading
media/libaaudio/examples/input_monitor/src/input_monitor.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -24,12 +24,11 @@ #include <aaudio/AAudio.h> #define SAMPLE_RATE 48000 #define NUM_SECONDS 10 #define NUM_SECONDS 6 #define NANOS_PER_MICROSECOND ((int64_t)1000) #define NANOS_PER_MILLISECOND (NANOS_PER_MICROSECOND * 1000) #define NANOS_PER_SECOND (NANOS_PER_MILLISECOND * 1000) #define DECAY_FACTOR 0.999 #define MIN_FRAMES_TO_READ 48 /* arbitrary, 1 msec at 48000 Hz */ static const char *getSharingModeText(aaudio_sharing_mode_t mode) { Loading Loading @@ -59,6 +58,7 @@ int main(int argc, char **argv) aaudio_audio_format_t actualDataFormat; const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_SHARED; //const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_EXCLUSIVE; aaudio_sharing_mode_t actualSharingMode; AAudioStreamBuilder *aaudioBuilder = nullptr; Loading Loading @@ -143,27 +143,27 @@ int main(int argc, char **argv) state = AAudioStream_getState(aaudioStream); printf("after start, state = %s\n", AAudio_convertStreamStateToText(state)); // Play for a while. // Record for a while. framesToRecord = actualSampleRate * NUM_SECONDS; framesLeft = framesToRecord; while (framesLeft > 0) { // Read audio data from the stream. int64_t timeoutNanos = 100 * NANOS_PER_MILLISECOND; const int64_t timeoutNanos = 100 * NANOS_PER_MILLISECOND; int minFrames = (framesToRecord < framesPerRead) ? framesToRecord : framesPerRead; int actual = AAudioStream_read(aaudioStream, data, minFrames, timeoutNanos); if (actual < 0) { fprintf(stderr, "ERROR - AAudioStream_read() returned %zd\n", actual); fprintf(stderr, "ERROR - AAudioStream_read() returned %d\n", actual); result = actual; goto finish; } else if (actual == 0) { fprintf(stderr, "WARNING - AAudioStream_read() returned %zd\n", actual); fprintf(stderr, "WARNING - AAudioStream_read() returned %d\n", actual); goto finish; } framesLeft -= actual; // Peak follower. // Peak finder. for (int frameIndex = 0; frameIndex < actual; frameIndex++) { float sample = data[frameIndex * actualSamplesPerFrame] * (1.0/32768); peakLevel *= DECAY_FACTOR; if (sample > peakLevel) { peakLevel = sample; } Loading @@ -177,6 +177,7 @@ int main(int argc, char **argv) printf("*"); } printf("\n"); peakLevel = 0.0; } } Loading @@ -184,9 +185,9 @@ int main(int argc, char **argv) printf("AAudioStream_getXRunCount %d\n", xRunCount); finish: delete[] data; AAudioStream_close(aaudioStream); AAudioStreamBuilder_delete(aaudioBuilder); delete[] data; printf("exiting - AAudio result = %d = %s\n", result, AAudio_convertResultToText(result)); return (result != AAUDIO_OK) ? EXIT_FAILURE : EXIT_SUCCESS; } Loading
media/libaaudio/examples/input_monitor/src/input_monitor_callback.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ public: AAudioStreamBuilder_setDirection(mBuilder, AAUDIO_DIRECTION_INPUT); AAudioStreamBuilder_setSharingMode(mBuilder, mRequestedSharingMode); AAudioStreamBuilder_setDataCallback(mBuilder, proc, userContext); AAudioStreamBuilder_setFormat(mBuilder, AAUDIO_FORMAT_PCM_FLOAT); AAudioStreamBuilder_setFormat(mBuilder, AAUDIO_FORMAT_PCM_I16); // Open an AAudioStream using the Builder. result = AAudioStreamBuilder_openStream(mBuilder, &mStream); Loading Loading @@ -285,7 +285,7 @@ int main(int argc, char **argv) if (result != AAUDIO_OK) { goto error; } sleep(1); usleep(2000 * 1000); result = recorder.start(); if (result != AAUDIO_OK) { fprintf(stderr, "ERROR - recorder.start() returned %d\n", result); Loading
media/libaaudio/examples/loopback/src/loopback.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -344,8 +344,8 @@ int main(int argc, const char **argv) aaudio_audio_format_t actualInputFormat; aaudio_audio_format_t actualOutputFormat; //const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_EXCLUSIVE; const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_SHARED; const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_EXCLUSIVE; //const aaudio_sharing_mode_t requestedSharingMode = AAUDIO_SHARING_MODE_SHARED; aaudio_sharing_mode_t actualSharingMode; AAudioStreamBuilder *builder = nullptr; Loading
media/libaaudio/src/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ LOCAL_SRC_FILES = \ fifo/FifoControllerBase.cpp \ client/AudioEndpoint.cpp \ client/AudioStreamInternal.cpp \ client/AudioStreamInternalCapture.cpp \ client/AudioStreamInternalPlay.cpp \ client/IsochronousClockModel.cpp \ binding/AudioEndpointParcelable.cpp \ binding/AAudioBinderClient.cpp \ Loading Loading @@ -99,6 +101,8 @@ LOCAL_SRC_FILES = core/AudioStream.cpp \ fifo/FifoControllerBase.cpp \ client/AudioEndpoint.cpp \ client/AudioStreamInternal.cpp \ client/AudioStreamInternalCapture.cpp \ client/AudioStreamInternalPlay.cpp \ client/IsochronousClockModel.cpp \ binding/AudioEndpointParcelable.cpp \ binding/AAudioBinderClient.cpp \ Loading
media/libaaudio/src/binding/AAudioServiceDefinitions.h +1 −2 Original line number Diff line number Diff line Loading @@ -77,8 +77,7 @@ typedef struct EndpointDescriptor_s { // Set capacityInFrames to zero if Queue is unused. RingBufferDescriptor upMessageQueueDescriptor; // server to client RingBufferDescriptor downMessageQueueDescriptor; // client to server RingBufferDescriptor upDataQueueDescriptor; // eg. record RingBufferDescriptor downDataQueueDescriptor; // eg. playback RingBufferDescriptor dataQueueDescriptor; // playback or capture } EndpointDescriptor; } // namespace aaudio Loading