Add an interface for accepting keypress signals to AudioProcessing.
R=aluebs@webrtc.org Review URL: https://webrtc-codereview.appspot.com/8429004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5529 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
aa1278de46
commit
75dd2885c5
@ -568,6 +568,14 @@ int AudioProcessingImpl::delay_offset_ms() const {
|
|||||||
return delay_offset_ms_;
|
return delay_offset_ms_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AudioProcessingImpl::set_stream_key_pressed(bool key_pressed) {
|
||||||
|
key_pressed_ = key_pressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AudioProcessingImpl::stream_key_pressed() const {
|
||||||
|
return key_pressed_;
|
||||||
|
}
|
||||||
|
|
||||||
int AudioProcessingImpl::StartDebugRecording(
|
int AudioProcessingImpl::StartDebugRecording(
|
||||||
const char filename[AudioProcessing::kMaxFilenameSize]) {
|
const char filename[AudioProcessing::kMaxFilenameSize]) {
|
||||||
CriticalSectionScoped crit_scoped(crit_);
|
CriticalSectionScoped crit_scoped(crit_);
|
||||||
|
@ -76,6 +76,8 @@ class AudioProcessingImpl : public AudioProcessing {
|
|||||||
virtual int stream_delay_ms() const OVERRIDE;
|
virtual int stream_delay_ms() const OVERRIDE;
|
||||||
virtual void set_delay_offset_ms(int offset) OVERRIDE;
|
virtual void set_delay_offset_ms(int offset) OVERRIDE;
|
||||||
virtual int delay_offset_ms() const OVERRIDE;
|
virtual int delay_offset_ms() const OVERRIDE;
|
||||||
|
virtual void set_stream_key_pressed(bool key_pressed) OVERRIDE;
|
||||||
|
virtual bool stream_key_pressed() const OVERRIDE;
|
||||||
virtual int StartDebugRecording(
|
virtual int StartDebugRecording(
|
||||||
const char filename[kMaxFilenameSize]) OVERRIDE;
|
const char filename[kMaxFilenameSize]) OVERRIDE;
|
||||||
virtual int StartDebugRecording(FILE* handle) OVERRIDE;
|
virtual int StartDebugRecording(FILE* handle) OVERRIDE;
|
||||||
@ -134,6 +136,8 @@ class AudioProcessingImpl : public AudioProcessing {
|
|||||||
int num_reverse_channels_;
|
int num_reverse_channels_;
|
||||||
int num_input_channels_;
|
int num_input_channels_;
|
||||||
int num_output_channels_;
|
int num_output_channels_;
|
||||||
|
|
||||||
|
bool key_pressed_;
|
||||||
};
|
};
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
||||||
|
@ -231,6 +231,11 @@ class AudioProcessing : public Module {
|
|||||||
virtual int set_stream_delay_ms(int delay) = 0;
|
virtual int set_stream_delay_ms(int delay) = 0;
|
||||||
virtual int stream_delay_ms() const = 0;
|
virtual int stream_delay_ms() const = 0;
|
||||||
|
|
||||||
|
// Call to signal that a key press occurred (true) or did not occur (false)
|
||||||
|
// with this chunk of audio.
|
||||||
|
virtual void set_stream_key_pressed(bool key_pressed) = 0;
|
||||||
|
virtual bool stream_key_pressed() const = 0;
|
||||||
|
|
||||||
// Sets a delay |offset| in ms to add to the values passed in through
|
// Sets a delay |offset| in ms to add to the values passed in through
|
||||||
// set_stream_delay_ms(). May be positive or negative.
|
// set_stream_delay_ms(). May be positive or negative.
|
||||||
//
|
//
|
||||||
|
@ -209,6 +209,10 @@ class MockAudioProcessing : public AudioProcessing {
|
|||||||
int(int delay));
|
int(int delay));
|
||||||
MOCK_CONST_METHOD0(stream_delay_ms,
|
MOCK_CONST_METHOD0(stream_delay_ms,
|
||||||
int());
|
int());
|
||||||
|
MOCK_METHOD1(set_stream_key_pressed,
|
||||||
|
void(bool key_pressed));
|
||||||
|
MOCK_CONST_METHOD0(stream_key_pressed,
|
||||||
|
bool());
|
||||||
MOCK_METHOD1(set_delay_offset_ms,
|
MOCK_METHOD1(set_delay_offset_ms,
|
||||||
void(int offset));
|
void(int offset));
|
||||||
MOCK_CONST_METHOD0(delay_offset_ms,
|
MOCK_CONST_METHOD0(delay_offset_ms,
|
||||||
|
@ -362,7 +362,7 @@ TransmitMixer::PrepareDemux(const void* audioSamples,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --- Near-end audio processing.
|
// --- Near-end audio processing.
|
||||||
ProcessAudio(totalDelayMS, clockDrift, currentMicLevel);
|
ProcessAudio(totalDelayMS, clockDrift, currentMicLevel, keyPressed);
|
||||||
|
|
||||||
if (swap_stereo_channels_ && stereo_codec_)
|
if (swap_stereo_channels_ && stereo_codec_)
|
||||||
// Only bother swapping if we're using a stereo codec.
|
// Only bother swapping if we're using a stereo codec.
|
||||||
@ -1309,7 +1309,7 @@ int32_t TransmitMixer::MixOrReplaceAudioWithFile(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TransmitMixer::ProcessAudio(int delay_ms, int clock_drift,
|
void TransmitMixer::ProcessAudio(int delay_ms, int clock_drift,
|
||||||
int current_mic_level) {
|
int current_mic_level, bool key_pressed) {
|
||||||
if (audioproc_->set_stream_delay_ms(delay_ms) != 0) {
|
if (audioproc_->set_stream_delay_ms(delay_ms) != 0) {
|
||||||
// A redundant warning is reported in AudioDevice, which we've throttled
|
// A redundant warning is reported in AudioDevice, which we've throttled
|
||||||
// to avoid flooding the logs. Relegate this one to LS_VERBOSE to avoid
|
// to avoid flooding the logs. Relegate this one to LS_VERBOSE to avoid
|
||||||
@ -1328,6 +1328,8 @@ void TransmitMixer::ProcessAudio(int delay_ms, int clock_drift,
|
|||||||
aec->set_stream_drift_samples(clock_drift);
|
aec->set_stream_drift_samples(clock_drift);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
audioproc_->set_stream_key_pressed(key_pressed);
|
||||||
|
|
||||||
int err = audioproc_->ProcessStream(&_audioFrame);
|
int err = audioproc_->ProcessStream(&_audioFrame);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
LOG(LS_ERROR) << "ProcessStream() error: " << err;
|
LOG(LS_ERROR) << "ProcessStream() error: " << err;
|
||||||
|
@ -184,7 +184,8 @@ private:
|
|||||||
int32_t MixOrReplaceAudioWithFile(
|
int32_t MixOrReplaceAudioWithFile(
|
||||||
int mixingFrequency);
|
int mixingFrequency);
|
||||||
|
|
||||||
void ProcessAudio(int delay_ms, int clock_drift, int current_mic_level);
|
void ProcessAudio(int delay_ms, int clock_drift, int current_mic_level,
|
||||||
|
bool key_pressed);
|
||||||
|
|
||||||
#ifdef WEBRTC_VOICE_ENGINE_TYPING_DETECTION
|
#ifdef WEBRTC_VOICE_ENGINE_TYPING_DETECTION
|
||||||
void TypingDetection(bool keyPressed);
|
void TypingDetection(bool keyPressed);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user