diff --git a/atom.gyp b/atom.gyp index 378c961be0d..8cc769bf44a 100644 --- a/atom.gyp +++ b/atom.gyp @@ -101,6 +101,8 @@ 'atom/browser/atom_javascript_dialog_manager.h', 'atom/browser/atom_resource_dispatcher_host_delegate.cc', 'atom/browser/atom_resource_dispatcher_host_delegate.h', + 'atom/browser/atom_speech_recognition_manager_delegate.cc', + 'atom/browser/atom_speech_recognition_manager_delegate.h', 'atom/browser/browser.cc', 'atom/browser/browser.h', 'atom/browser/browser_linux.cc', diff --git a/atom/browser/atom_browser_client.cc b/atom/browser/atom_browser_client.cc index 04e860821af..ba3e8a69666 100644 --- a/atom/browser/atom_browser_client.cc +++ b/atom/browser/atom_browser_client.cc @@ -8,6 +8,7 @@ #include "atom/browser/atom_browser_context.h" #include "atom/browser/atom_browser_main_parts.h" #include "atom/browser/atom_resource_dispatcher_host_delegate.h" +#include "atom/browser/atom_speech_recognition_manager_delegate.h" #include "atom/browser/native_window.h" #include "atom/browser/window_list.h" #include "chrome/browser/printing/printing_message_filter.h" @@ -63,6 +64,11 @@ void AtomBrowserClient::ResourceDispatcherHostCreated() { resource_dispatcher_delegate_.get()); } +content::SpeechRecognitionManagerDelegate* + AtomBrowserClient::GetSpeechRecognitionManagerDelegate() { + return new AtomSpeechRecognitionManagerDelegate; +} + content::AccessTokenStore* AtomBrowserClient::CreateAccessTokenStore() { return new AtomAccessTokenStore; } diff --git a/atom/browser/atom_browser_client.h b/atom/browser/atom_browser_client.h index 9958e2ffe84..344606c3ca2 100644 --- a/atom/browser/atom_browser_client.h +++ b/atom/browser/atom_browser_client.h @@ -23,6 +23,8 @@ class AtomBrowserClient : public brightray::BrowserClient { virtual void RenderProcessWillLaunch( content::RenderProcessHost* host) OVERRIDE; virtual void ResourceDispatcherHostCreated() OVERRIDE; + virtual content::SpeechRecognitionManagerDelegate* + GetSpeechRecognitionManagerDelegate() override; virtual content::AccessTokenStore* CreateAccessTokenStore() OVERRIDE; virtual void OverrideWebkitPrefs(content::RenderViewHost* render_view_host, const GURL& url, diff --git a/atom/browser/atom_speech_recognition_manager_delegate.cc b/atom/browser/atom_speech_recognition_manager_delegate.cc new file mode 100644 index 00000000000..e0acb1d64c6 --- /dev/null +++ b/atom/browser/atom_speech_recognition_manager_delegate.cc @@ -0,0 +1,71 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#include "atom/browser/atom_speech_recognition_manager_delegate.h" + +#include "base/callback.h" + +namespace atom { + +AtomSpeechRecognitionManagerDelegate::AtomSpeechRecognitionManagerDelegate() { +} + +AtomSpeechRecognitionManagerDelegate::~AtomSpeechRecognitionManagerDelegate() { +} + +void AtomSpeechRecognitionManagerDelegate::OnRecognitionStart(int session_id) { +} + +void AtomSpeechRecognitionManagerDelegate::OnAudioStart(int session_id) { +} + +void AtomSpeechRecognitionManagerDelegate::OnEnvironmentEstimationComplete( + int session_id) { +} + +void AtomSpeechRecognitionManagerDelegate::OnSoundStart(int session_id) { +} + +void AtomSpeechRecognitionManagerDelegate::OnSoundEnd(int session_id) { +} + +void AtomSpeechRecognitionManagerDelegate::OnAudioEnd(int session_id) { +} + +void AtomSpeechRecognitionManagerDelegate::OnRecognitionEnd(int session_id) { +} + +void AtomSpeechRecognitionManagerDelegate::OnRecognitionResults( + int session_id, const content::SpeechRecognitionResults& result) { +} + +void AtomSpeechRecognitionManagerDelegate::OnRecognitionError( + int session_id, const content::SpeechRecognitionError& error) { +} + +void AtomSpeechRecognitionManagerDelegate::OnAudioLevelsChange( + int session_id, float volume, float noise_volume) { +} + +void AtomSpeechRecognitionManagerDelegate::GetDiagnosticInformation( + bool* can_report_metrics, std::string* hardware_info) { +} + +void AtomSpeechRecognitionManagerDelegate::CheckRecognitionIsAllowed( + int session_id, + base::Callback callback) { + callback.Run(true, true); +} + +content::SpeechRecognitionEventListener* +AtomSpeechRecognitionManagerDelegate::GetEventListener() { + return this; +} + +bool AtomSpeechRecognitionManagerDelegate::FilterProfanities( + int render_process_id) { + return false; +} + +} // namespace atom diff --git a/atom/browser/atom_speech_recognition_manager_delegate.h b/atom/browser/atom_speech_recognition_manager_delegate.h new file mode 100644 index 00000000000..325c99ad982 --- /dev/null +++ b/atom/browser/atom_speech_recognition_manager_delegate.h @@ -0,0 +1,50 @@ +// Copyright (c) 2014 GitHub, Inc. All rights reserved. +// Use of this source code is governed by the MIT license that can be +// found in the LICENSE file. + +#ifndef ATOM_BROWSER_ATOM_SPEECH_RECOGNITION_MANAGER_DELEGATE_H_ +#define ATOM_BROWSER_ATOM_SPEECH_RECOGNITION_MANAGER_DELEGATE_H_ + +#include "content/public/browser/speech_recognition_event_listener.h" +#include "content/public/browser/speech_recognition_manager_delegate.h" + +namespace atom { + +class AtomSpeechRecognitionManagerDelegate + : public content::SpeechRecognitionManagerDelegate, + public content::SpeechRecognitionEventListener { + public: + AtomSpeechRecognitionManagerDelegate(); + virtual ~AtomSpeechRecognitionManagerDelegate(); + + // content::SpeechRecognitionEventListener: + virtual void OnRecognitionStart(int session_id) override; + virtual void OnAudioStart(int session_id) override; + virtual void OnEnvironmentEstimationComplete(int session_id) override; + virtual void OnSoundStart(int session_id) override; + virtual void OnSoundEnd(int session_id) override; + virtual void OnAudioEnd(int session_id) override; + virtual void OnRecognitionEnd(int session_id) override; + virtual void OnRecognitionResults( + int session_id, const content::SpeechRecognitionResults& result) override; + virtual void OnRecognitionError( + int session_id, const content::SpeechRecognitionError& error) override; + virtual void OnAudioLevelsChange(int session_id, float volume, + float noise_volume) override; + + // content::SpeechRecognitionManagerDelegate: + virtual void GetDiagnosticInformation(bool* can_report_metrics, + std::string* hardware_info) override; + virtual void CheckRecognitionIsAllowed( + int session_id, + base::Callback callback) override; + virtual content::SpeechRecognitionEventListener* GetEventListener() override; + virtual bool FilterProfanities(int render_process_id) override; + + private: + DISALLOW_COPY_AND_ASSIGN(AtomSpeechRecognitionManagerDelegate); +}; + +} // namespace atom + +#endif // ATOM_BROWSER_ATOM_SPEECH_RECOGNITION_MANAGER_DELEGATE_H_ diff --git a/filename_rules.gypi b/filename_rules.gypi index 9f693827e34..e1ee46dddee 100644 --- a/filename_rules.gypi +++ b/filename_rules.gypi @@ -31,6 +31,7 @@ # files on non-linux. ['OS!="linux" and OS!="openbsd" and OS!="freebsd"', { 'sources/': [ + ['exclude', '(^|/)library_loaders/'], ['exclude', '_linux(_unittest)?\\.(h|cc)$'], ['exclude', '(^|/)linux_[^/]*\\.(h|cc)$'], ['exclude', '(^|/)linux/'],