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

Unified Diff: media/base/video_capture_types.h

Issue 1323093006: Change the media::PowerLineFrequency from an enum class to a proper class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pass around PowerLineFrequency objects in VideoCaptureDevice instead of integers Created 5 years, 3 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/base/BUILD.gn ('k') | media/base/video_capture_types.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/video_capture_types.h
diff --git a/media/base/video_capture_types.h b/media/base/video_capture_types.h
index 4790ea52e1e12414226a882142495ed03c4b3eaa..ea1ba032bc5c6faa552052f0e8fdf3d7053658ca 100644
--- a/media/base/video_capture_types.h
+++ b/media/base/video_capture_types.h
@@ -55,20 +55,42 @@ enum ResolutionChangePolicy {
// Potential values of the googPowerLineFrequency optional constraint passed to
// getUserMedia. Note that the numeric values are currently significant, and are
// used to map enum values to corresponding frequency values.
-// TODO(ajose): http://crbug.com/525167 Consider making this a class.
-enum class PowerLineFrequency {
- FREQUENCY_DEFAULT = 0,
- FREQUENCY_50HZ = 50,
- FREQUENCY_60HZ = 60,
- FREQUENCY_MAX = FREQUENCY_60HZ
+class MEDIA_EXPORT PowerLineFrequency {
+public:
+
+ PowerLineFrequency();
+ explicit PowerLineFrequency(int freq);
+
+ int get() const { return freq_; }
+
+ bool operator==(const PowerLineFrequency& other) const {
+ return freq_ == other.freq_;
+ }
+
+ PowerLineFrequency& operator=(int freq);
+
+ bool valid();
+
+ static const int FREQUENCY_DEFAULT = 0;
+ static const int FREQUENCY_50HZ = 50;
+ static const int FREQUENCY_60HZ = 60;
+ static const int FREQUENCY_MAX = FREQUENCY_60HZ;
+
+private:
+
+ void check();
+
+ int freq_;
+
};
+
// Assert that the int:frequency mapping is correct.
-static_assert(static_cast<int>(PowerLineFrequency::FREQUENCY_DEFAULT) == 0,
- "static_cast<int>(FREQUENCY_DEFAULT) must equal 0.");
-static_assert(static_cast<int>(PowerLineFrequency::FREQUENCY_50HZ) == 50,
- "static_cast<int>(FREQUENCY_DEFAULT) must equal 50.");
-static_assert(static_cast<int>(PowerLineFrequency::FREQUENCY_60HZ) == 60,
- "static_cast<int>(FREQUENCY_DEFAULT) must equal 60.");
+static_assert(PowerLineFrequency::FREQUENCY_DEFAULT == 0,
+ "FREQUENCY_DEFAULT must equal 0.");
+static_assert(PowerLineFrequency::FREQUENCY_50HZ == 50,
+ "FREQUENCY_50HZ must equal 50.");
+static_assert(PowerLineFrequency::FREQUENCY_60HZ == 60,
+ "FREQUENCY_60HZ must equal 60.");
// Some drivers use rational time per frame instead of float frame rate, this
// constant k is used to convert between both: A fps -> [k/k*A] seconds/frame.
« no previous file with comments | « media/base/BUILD.gn ('k') | media/base/video_capture_types.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698