Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: ui/app_list/speech_ui_model.cc

Issue 1477533002: Remove kint16max. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@kint8max
Patch Set: includes Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/disk_cache/blockfile/file_lock.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/app_list/speech_ui_model.h" 5 #include "ui/app_list/speech_ui_model.h"
6 6
7 #include <stdint.h>
8
7 #include <algorithm> 9 #include <algorithm>
10 #include <limits>
8 11
9 namespace app_list { 12 namespace app_list {
10 13
11 namespace { 14 namespace {
12 15
13 // The default sound level, just gotten from the developer device. 16 // The default sound level, just gotten from the developer device.
14 const int16 kDefaultSoundLevel = 200; 17 const int16_t kDefaultSoundLevel = 200;
15 18
16 } // namespace 19 } // namespace
17 20
18 SpeechUIModel::SpeechUIModel() 21 SpeechUIModel::SpeechUIModel()
19 : is_final_(false), 22 : is_final_(false),
20 sound_level_(0), 23 sound_level_(0),
21 state_(app_list::SPEECH_RECOGNITION_OFF), 24 state_(app_list::SPEECH_RECOGNITION_OFF),
22 minimum_sound_level_(kDefaultSoundLevel), 25 minimum_sound_level_(kDefaultSoundLevel),
23 maximum_sound_level_(kDefaultSoundLevel) { 26 maximum_sound_level_(kDefaultSoundLevel) {
24 } 27 }
25 28
26 SpeechUIModel::~SpeechUIModel() {} 29 SpeechUIModel::~SpeechUIModel() {}
27 30
28 void SpeechUIModel::SetSpeechResult(const base::string16& result, 31 void SpeechUIModel::SetSpeechResult(const base::string16& result,
29 bool is_final) { 32 bool is_final) {
30 if (result_ == result && is_final_ == is_final) 33 if (result_ == result && is_final_ == is_final)
31 return; 34 return;
32 35
33 result_ = result; 36 result_ = result;
34 is_final_ = is_final; 37 is_final_ = is_final;
35 FOR_EACH_OBSERVER(SpeechUIModelObserver, 38 FOR_EACH_OBSERVER(SpeechUIModelObserver,
36 observers_, 39 observers_,
37 OnSpeechResult(result, is_final)); 40 OnSpeechResult(result, is_final));
38 } 41 }
39 42
40 void SpeechUIModel::UpdateSoundLevel(int16 level) { 43 void SpeechUIModel::UpdateSoundLevel(int16_t level) {
41 if (sound_level_ == level) 44 if (sound_level_ == level)
42 return; 45 return;
43 46
44 sound_level_ = level; 47 sound_level_ = level;
45 48
46 // Tweak the sound level limits adaptively. 49 // Tweak the sound level limits adaptively.
47 // - min is the minimum value during the speech recognition starts but speech 50 // - min is the minimum value during the speech recognition starts but speech
48 // itself hasn't started. 51 // itself hasn't started.
49 // - max is the maximum value when the user speaks. 52 // - max is the maximum value when the user speaks.
50 if (state_ == SPEECH_RECOGNITION_IN_SPEECH) 53 if (state_ == SPEECH_RECOGNITION_IN_SPEECH)
51 maximum_sound_level_ = std::max(level, maximum_sound_level_); 54 maximum_sound_level_ = std::max(level, maximum_sound_level_);
52 else 55 else
53 minimum_sound_level_ = std::min(level, minimum_sound_level_); 56 minimum_sound_level_ = std::min(level, minimum_sound_level_);
54 57
55 if (maximum_sound_level_ < minimum_sound_level_) { 58 if (maximum_sound_level_ < minimum_sound_level_) {
56 maximum_sound_level_ = std::max( 59 maximum_sound_level_ = std::max(
57 static_cast<int16>(minimum_sound_level_ + kDefaultSoundLevel), 60 static_cast<int16_t>(minimum_sound_level_ + kDefaultSoundLevel),
58 kint16max); 61 std::numeric_limits<int16_t>::max());
59 } 62 }
60 63
61 int16 range = maximum_sound_level_ - minimum_sound_level_; 64 int16_t range = maximum_sound_level_ - minimum_sound_level_;
62 uint8 visible_level = 0; 65 uint8_t visible_level = 0;
63 if (range > 0) { 66 if (range > 0) {
64 int16 visible_level_in_range = 67 int16_t visible_level_in_range = std::min(
65 std::min(std::max(minimum_sound_level_, sound_level_), 68 std::max(minimum_sound_level_, sound_level_), maximum_sound_level_);
66 maximum_sound_level_); 69 visible_level = (visible_level_in_range - minimum_sound_level_) *
67 visible_level = 70 std::numeric_limits<uint8_t>::max() / range;
68 (visible_level_in_range - minimum_sound_level_) * kuint8max / range;
69 } 71 }
70 72
71 FOR_EACH_OBSERVER(SpeechUIModelObserver, 73 FOR_EACH_OBSERVER(SpeechUIModelObserver,
72 observers_, 74 observers_,
73 OnSpeechSoundLevelChanged(visible_level)); 75 OnSpeechSoundLevelChanged(visible_level));
74 } 76 }
75 77
76 void SpeechUIModel::SetSpeechRecognitionState(SpeechRecognitionState new_state, 78 void SpeechUIModel::SetSpeechRecognitionState(SpeechRecognitionState new_state,
77 bool always_show_ui) { 79 bool always_show_ui) {
78 // Don't show the speech view on a change to a network error or if the state 80 // Don't show the speech view on a change to a network error or if the state
(...skipping 20 matching lines...) Expand all
99 101
100 void SpeechUIModel::AddObserver(SpeechUIModelObserver* observer) { 102 void SpeechUIModel::AddObserver(SpeechUIModelObserver* observer) {
101 observers_.AddObserver(observer); 103 observers_.AddObserver(observer);
102 } 104 }
103 105
104 void SpeechUIModel::RemoveObserver(SpeechUIModelObserver* observer) { 106 void SpeechUIModel::RemoveObserver(SpeechUIModelObserver* observer) {
105 observers_.RemoveObserver(observer); 107 observers_.RemoveObserver(observer);
106 } 108 }
107 109
108 } // namespace app_list 110 } // namespace app_list
OLDNEW
« no previous file with comments | « net/disk_cache/blockfile/file_lock.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698