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

Side by Side Diff: content/common/media/key_system_service.cc

Issue 1637083002: Add CdmService to keep track of CDMs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/public/common/key_system_service.h"
6
7 #include "content/public/common/content_client.h"
8
9 namespace content {
10
11 static base::LazyInstance<KeySystemService>::Leaky g_key_system_service =
12 LAZY_INSTANCE_INITIALIZER;
13
14 // static
15 KeySystemService* KeySystemService::GetInstance() {
16 return g_key_system_service.Pointer();
17 }
18
19 KeySystemService::KeySystemService() {
20 GetContentClient()->AddKeySystems(&registered_key_systems_);
xhwang 2016/01/29 07:43:06 See comment below.
jrummell 2016/03/04 01:19:40 Acknowledged.
21 }
22
23 KeySystemService::~KeySystemService() {}
24
25 void KeySystemService::Register(const std::string& key_system,
26 const base::FilePath& path,
27 const base::string16& codecs) {
28 for (size_t i = 0; i < registered_key_systems_.size(); i++) {
29 if (registered_key_systems_[i].key_system_ == key_system) {
30 registered_key_systems_[i].path_ = path;
31 registered_key_systems_[i].codecs_ = codecs;
32 return;
33 }
34 }
35
36 registered_key_systems_.push_back(
37 KeySystemRegistration(key_system, path, codecs));
38 }
39
40 bool KeySystemService::Path(const std::string& key_system,
41 base::FilePath* path) {
42 for (size_t i = 0; i < registered_key_systems_.size(); i++) {
43 if (registered_key_systems_[i].key_system_ == key_system) {
44 *path = registered_key_systems_[i].path_;
45 return true;
46 }
47 }
48
49 // |key_system| not (yet) registered.
50 return false;
51 }
52
53 bool KeySystemService::Codecs(const std::string& key_system,
54 base::string16* codecs) {
55 for (size_t i = 0; i < registered_key_systems_.size(); i++) {
56 if (registered_key_systems_[i].key_system_ == key_system) {
57 *codecs = registered_key_systems_[i].codecs_;
58 return true;
59 }
60 }
61
62 // |key_system| not (yet) registered.
63 return false;
64 }
65
66 void KeySystemService::GetAllRegisteredKeySystems(
67 std::vector<std::string>* key_systems,
68 std::vector<base::FilePath>* paths) {
69 DCHECK(key_systems->empty());
70 DCHECK(paths->empty());
71
72 for (size_t i = 0; i < registered_key_systems_.size(); i++) {
73 key_systems->push_back(registered_key_systems_[i].key_system_);
74 paths->push_back(registered_key_systems_[i].path_);
75 }
76 }
77
78 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698