1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_MEDIA_PLAYER_API_H_ 6 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_MEDIA_PLAYER_API_H_ 7 8 #include <map> 9 #include <string> 10 #include <vector> 11 12 #include "base/memory/scoped_ptr.h" 13 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h" 14 #include "extensions/browser/extension_function.h" 15 16 class Profile; 17 18 namespace extensions { 19 class MediaPlayerEventRouter; 20 21 class MediaPlayerAPI : public ProfileKeyedAPI { 22 public: 23 explicit MediaPlayerAPI(Profile* profile); 24 virtual ~MediaPlayerAPI(); 25 26 // Convenience method to get the MediaPlayerAPI for a profile. 27 static MediaPlayerAPI* Get(Profile* profile); 28 29 MediaPlayerEventRouter* media_player_event_router(); 30 31 // ProfileKeyedAPI implementation. 32 static ProfileKeyedAPIFactory<MediaPlayerAPI>* GetFactoryInstance(); 33 34 private: 35 friend class ProfileKeyedAPIFactory<MediaPlayerAPI>; 36 37 Profile* const profile_; 38 39 // ProfileKeyedAPI implementation. 40 static const char* service_name() { 41 return "MediaPlayerAPI"; 42 } 43 static const bool kServiceRedirectedInIncognito = true; 44 static const bool kServiceIsNULLWhileTesting = true; 45 46 scoped_ptr<MediaPlayerEventRouter> media_player_event_router_; 47 48 DISALLOW_COPY_AND_ASSIGN(MediaPlayerAPI); 49 }; 50 51 } // namespace extensions 52 53 #endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_MEDIA_PLAYER_API_H_ 54