diff options
author | yoshiki@chromium.org <yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-31 09:24:30 +0000 |
---|---|---|
committer | yoshiki@chromium.org <yoshiki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-31 09:24:30 +0000 |
commit | 5dfcd8544f56c90d892ca7254a5459c06dd1df9e (patch) | |
tree | bd9927f55b05208623b023bad1c7167a4d7118b1 /chrome/browser/accessibility_events.cc | |
parent | 9a67e2bbb355b46e05c048bfe3a8daa291798a73 (diff) | |
download | chromium_src-5dfcd8544f56c90d892ca7254a5459c06dd1df9e.zip chromium_src-5dfcd8544f56c90d892ca7254a5459c06dd1df9e.tar.gz chromium_src-5dfcd8544f56c90d892ca7254a5459c06dd1df9e.tar.bz2 |
Adds an extension API of the event on changing volume.
- experimental.accessibility.onVolumeChange
I run chrome/common/extensions/docs/build/build.py, but no documents about a11y was changed. So this CL doesn't include any changes of documents.
BUG=chromium-os:16592
TEST=call the APIs manually on chromium-os
Review URL: http://codereview.chromium.org/7708025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98948 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/accessibility_events.cc')
-rw-r--r-- | chrome/browser/accessibility_events.cc | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/chrome/browser/accessibility_events.cc b/chrome/browser/accessibility_events.cc index 79a1126..1ba755b 100644 --- a/chrome/browser/accessibility_events.cc +++ b/chrome/browser/accessibility_events.cc @@ -8,25 +8,34 @@ #include "chrome/browser/extensions/extension_accessibility_api_constants.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/common/chrome_notification_types.h" #include "content/common/content_notification_types.h" #include "content/common/notification_service.h" namespace keys = extension_accessibility_api_constants; void SendAccessibilityNotification( - int type, AccessibilityControlInfo* info) { + int type, AccessibilityEventInfo* info) { Profile *profile = info->profile(); if (profile->ShouldSendAccessibilityEvents()) { NotificationService::current()->Notify( type, Source<Profile>(profile), - Details<AccessibilityControlInfo>(info)); + Details<AccessibilityEventInfo>(info)); } } +void SendAccessibilityVolumeNotification(double volume, bool is_muted) { + Profile* profile = ProfileManager::GetDefaultProfile(); + AccessibilityVolumeInfo info(profile, volume, is_muted); + SendAccessibilityNotification( + chrome::NOTIFICATION_ACCESSIBILITY_VOLUME_CHANGED, &info); +} + AccessibilityControlInfo::AccessibilityControlInfo( Profile* profile, const std::string& control_name) - : profile_(profile), name_(control_name) { + : AccessibilityEventInfo(profile), name_(control_name) { } AccessibilityControlInfo::~AccessibilityControlInfo() { @@ -188,6 +197,22 @@ void AccessibilityListBoxInfo::SerializeToDict(DictionaryValue *dict) const { dict->SetInteger(keys::kItemCountKey, item_count_); } +AccessibilityVolumeInfo::AccessibilityVolumeInfo(Profile* profile, + double volume, + bool is_muted) + : AccessibilityEventInfo(profile), + volume_(volume), + is_muted_(is_muted) { + DCHECK(profile); + DCHECK_GE(volume, 0.0); + DCHECK_LE(volume, 100.0); +} + +void AccessibilityVolumeInfo::SerializeToDict(DictionaryValue *dict) const { + dict->SetDouble(keys::kVolumeKey, volume_); + dict->SetBoolean(keys::kIsVolumeMutedKey, is_muted_); +} + AccessibilityMenuInfo::AccessibilityMenuInfo(Profile* profile, const std::string& menu_name) : AccessibilityControlInfo(profile, menu_name) { |