Main Page
Namespaces
Classes
Files
File List
File Members
src
workspace
cogrob
cloud
speech
record_audio.h
Go to the documentation of this file.
1
// Copyright (c) 2017, The Regents of the University of California
2
// All rights reserved.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions are met:
6
// * Redistributions of source code must retain the above copyright
7
// notice, this list of conditions and the following disclaimer.
8
// * Redistributions in binary form must reproduce the above copyright
9
// notice, this list of conditions and the following disclaimer in the
10
// documentation and/or other materials provided with the distribution.
11
// * Neither the name of the University of California nor the
12
// names of its contributors may be used to endorse or promote products
13
// derived from this software without specific prior written permission.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
// ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OF THE UNIVERSITY OF CALIFORNIA
19
// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25
// POSSIBILITY OF SUCH DAMAGE.
26
27
#ifndef COGROB_CLOUD_SPEECH_RECORD_AUDIO_H_
28
#define COGROB_CLOUD_SPEECH_RECORD_AUDIO_H_
29
30
#include "
portaudio.h
"
31
32
#include <atomic>
33
#include <memory>
34
#include <thread>
35
36
#include "
util/simple_thread_safe_queue.h
"
37
#include "
cogrob/cloud/speech/audio_sample.h
"
38
39
namespace
cogrob
{
40
namespace
cloud {
41
namespace
speech
{
42
43
class
AudioRecorder
{
44
public
:
45
explicit
AudioRecorder
(
AudioQueue
* output_queue);
46
virtual
~AudioRecorder
();
47
private
:
48
AudioQueue
*
queue_
;
49
PaStream*
pa_stream_
=
nullptr
;
50
void
StartRecording
();
51
void
StopRecording
();
52
static
int
PortAudioCallback
(
53
const
void
* input,
void
* output,
unsigned
long
frame_count,
54
const
PaStreamCallbackTimeInfo* time_info,
55
PaStreamCallbackFlags status_flags,
void
* user_data);
56
};
57
58
}
// namespace speech
59
}
// namespace cloud
60
}
// namespace cogrob
61
62
#endif // COGROB_CLOUD_SPEECH_RECORD_AUDIO_H_
cogrob::cloud::speech::AudioRecorder::~AudioRecorder
virtual ~AudioRecorder()
Definition:
record_audio.cc:55
cogrob::cloud::speech::AudioRecorder
Definition:
record_audio.h:43
audio_sample.h
cogrob::cloud::speech::AudioRecorder::queue_
AudioQueue * queue_
Definition:
record_audio.h:48
cogrob::cloud::speech::AudioRecorder::StopRecording
void StopRecording()
Definition:
record_audio.cc:116
cogrob::cloud::speech::AudioRecorder::pa_stream_
PaStream * pa_stream_
Definition:
record_audio.h:49
cogrob::cloud::speech::AudioRecorder::PortAudioCallback
static int PortAudioCallback(const void *input, void *output, unsigned long frame_count, const PaStreamCallbackTimeInfo *time_info, PaStreamCallbackFlags status_flags, void *user_data)
Definition:
record_audio.cc:128
portaudio.h
cogrob::cloud::speech
Definition:
audio_sample.h:37
cogrob
Definition:
audio_sample.h:35
cogrob::cloud::speech::AudioRecorder::AudioRecorder
AudioRecorder(AudioQueue *output_queue)
Definition:
record_audio.cc:50
simple_thread_safe_queue.h
util::SimpleThreadSafeQueue
Definition:
simple_thread_safe_queue.h:40
cogrob::cloud::speech::AudioRecorder::StartRecording
void StartRecording()
Definition:
record_audio.cc:59
gcloud_speech_utils
Author(s):
autogenerated on Wed Jun 5 2019 21:24:09