| Index: webkit/fileapi/media_device_map_service.cc
|
| diff --git a/webkit/fileapi/media_device_map_service.cc b/webkit/fileapi/media_device_map_service.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..26728cc23fe27cfcd6b9689cce55227bde4ba318
|
| --- /dev/null
|
| +++ b/webkit/fileapi/media_device_map_service.cc
|
| @@ -0,0 +1,57 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "webkit/fileapi/media_device_map_service.h"
|
| +
|
| +#include <utility>
|
| +
|
| +#if defined(OS_WIN)
|
| +#include "webkit/fileapi/mtp_device_interface_win.h"
|
| +#elif defined(OS_POSIX) && !defined(OS_MACOSX)
|
| +#include "webkit/fileapi/mtp_device_interface_linux.h"
|
| +#endif
|
| +
|
| +namespace fileapi {
|
| +
|
| +// static
|
| +MediaDeviceMapService* MediaDeviceMapService::GetInstance() {
|
| + return Singleton<MediaDeviceMapService>::get();
|
| +}
|
| +
|
| +void MediaDeviceMapService::AddMediaDevice(
|
| + const FilePath::StringType& device_id) {
|
| + base::AutoLock lock(media_device_map_lock_);
|
| + MediaDeviceMap::const_iterator it = media_device_map_.find(device_id);
|
| + if (it == media_device_map_.end()) {
|
| + media_device_map_.insert(std::make_pair(
|
| + device_id, new MediaDeviceInterfaceImpl(device_id)));
|
| + }
|
| +}
|
| +
|
| +void MediaDeviceMapService::RemoveMediaDevice(
|
| + const FilePath::StringType& device_id) {
|
| + base::AutoLock lock(media_device_map_lock_);
|
| + MediaDeviceMap::iterator it = media_device_map_.find(device_id);
|
| + if (it != media_device_map_.end())
|
| + media_device_map_.erase(it);
|
| +}
|
| +
|
| +bool MediaDeviceMapService::GetMediaDevice(
|
| + const FilePath::StringType& device_id,
|
| + scoped_refptr<MediaDeviceInterfaceImpl>* device) {
|
| + base::AutoLock lock(media_device_map_lock_);
|
| + MediaDeviceMap::iterator it = media_device_map_.find(device_id);
|
| + if (it == media_device_map_.end())
|
| + return false;
|
| + *device = it->second;
|
| + return true;
|
| +}
|
| +
|
| +MediaDeviceMapService::MediaDeviceMapService() {
|
| +}
|
| +
|
| +MediaDeviceMapService::~MediaDeviceMapService() {
|
| +}
|
| +
|
| +} // namespace fileapi
|
|
|