15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/chromeos/extensions/media_player_event_router.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/singleton.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/extensions/extension_system.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/browser/event_router.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace extensions {
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void BroadcastEvent(Profile* profile, const std::string& event_name) {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (profile && extensions::ExtensionSystem::Get(profile)->event_router()) {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    scoped_ptr<ListValue> args(new ListValue());
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    scoped_ptr<extensions::Event> event(new extensions::Event(
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        event_name, args.Pass()));
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    extensions::ExtensionSystem::Get(profile)->event_router()->
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        BroadcastEvent(event.Pass());
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)MediaPlayerEventRouter::MediaPlayerEventRouter(Profile* profile)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    : profile_(profile) {
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)MediaPlayerEventRouter::~MediaPlayerEventRouter() {
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void MediaPlayerEventRouter::NotifyNextTrack() {
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  BroadcastEvent(profile_, "mediaPlayerPrivate.onNextTrack");
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void MediaPlayerEventRouter::NotifyPrevTrack() {
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  BroadcastEvent(profile_, "mediaPlayerPrivate.onPrevTrack");
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void MediaPlayerEventRouter::NotifyTogglePlayState() {
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  BroadcastEvent(profile_, "mediaPlayerPrivate.onTogglePlayState");
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace extensions
44