1 // Copyright (c) 2014 Intel Corporation. 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.
5 #include "xwalk/tizen/browser/media/murphy_resource.h"
7 #include "xwalk/tizen/browser/media/browser_mediaplayer_manager.h"
11 const char kMediaApplicationClass[] = "player";
12 const char kMediaStreamName[] = "audio_playback";
13 const char kMediaRole[] = "browser";
15 static void NotifyCallback(mrp_res_context_t* context,
16 const mrp_res_resource_set_t* resource_set,
17 void* callback_data) {
18 tizen::MurphyResource* resource =
19 static_cast<tizen::MurphyResource*> (callback_data);
20 tizen::BrowserMediaPlayerManager* manager = resource->media_player_manager();
24 manager->ResourceNotifyCallback(resource_set->state, resource->player_id());
25 resource->SetResourceState(resource_set->state);
32 MurphyResource::MurphyResource(
33 BrowserMediaPlayerManager* manager,
34 MediaPlayerID player_id,
35 MurphyResourceManager* resource_manager)
37 player_id_(player_id),
38 resource_manager_(resource_manager),
39 resource_state_(MRP_RES_RESOURCE_PENDING) {
40 mrp_res_context_t* context = resource_manager_->GetContext();
44 resource_set_ = mrp_res_create_resource_set(context,
45 kMediaApplicationClass, NotifyCallback, this);
49 mrp_res_resource_t* resource = mrp_res_create_resource(
50 resource_set_, kMediaStreamName, true, true);
52 mrp_res_attribute_t* attr = mrp_res_get_attribute_by_name(
55 mrp_res_set_attribute_string(attr, kMediaRole);
57 mrp_res_release_resource_set(resource_set_);
60 void MurphyResource::AcquireResource() {
61 if (!resource_manager_ || !resource_set_)
65 mrp_res_acquire_resource_set(resource_set_);
68 void MurphyResource::ReleaseResource() {
69 if (!resource_manager_ || !resource_set_)
73 mrp_res_release_resource_set(resource_set_);
76 MurphyResource::~MurphyResource() {
79 if (!resource_manager_ || !resource_set_)
82 // Delete resource set (and the resource inside it)
83 mrp_res_delete_resource_set(resource_set_);