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 3// found in the LICENSE file. 4 5#include "chrome/browser/extensions/api/music_manager_private/music_manager_private_api.h" 6 7#include "chrome/browser/extensions/api/music_manager_private/device_id.h" 8 9using content::BrowserThread; 10 11namespace { 12 13const char kDeviceIdNotSupported[] = 14 "Device ID API is not supported on this platform."; 15 16} 17 18namespace extensions { 19namespace api { 20 21MusicManagerPrivateGetDeviceIdFunction:: 22 MusicManagerPrivateGetDeviceIdFunction() { 23} 24 25MusicManagerPrivateGetDeviceIdFunction:: 26 ~MusicManagerPrivateGetDeviceIdFunction() { 27} 28 29bool MusicManagerPrivateGetDeviceIdFunction::RunAsync() { 30 DCHECK_CURRENTLY_ON(BrowserThread::UI); 31 DeviceId::GetDeviceId( 32 this->extension_id(), 33 base::Bind( 34 &MusicManagerPrivateGetDeviceIdFunction::DeviceIdCallback, 35 this)); 36 return true; // Still processing! 37} 38 39void MusicManagerPrivateGetDeviceIdFunction::DeviceIdCallback( 40 const std::string& device_id) { 41 DCHECK_CURRENTLY_ON(BrowserThread::UI); 42 bool response; 43 if (device_id.empty()) { 44 SetError(kDeviceIdNotSupported); 45 response = false; 46 } else { 47 SetResult(new base::StringValue(device_id)); 48 response = true; 49 } 50 51 SendResponse(response); 52} 53 54} // namespace api 55} // namespace extensions 56