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