Disable TabDragController tests that fail with a real compositor.
[chromium-blink-merge.git] / ppapi / cpp / media_stream_audio_track.cc
blob54dcba25ed1744e1a69924547e9b6028430b913d
1 // Copyright 2014 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.
5 #include "ppapi/cpp/media_stream_audio_track.h"
7 #include "ppapi/c/pp_errors.h"
8 #include "ppapi/c/ppb_media_stream_audio_track.h"
9 #include "ppapi/cpp/audio_frame.h"
10 #include "ppapi/cpp/completion_callback.h"
11 #include "ppapi/cpp/module_impl.h"
12 #include "ppapi/cpp/var.h"
14 namespace pp {
16 namespace {
18 template <> const char* interface_name<PPB_MediaStreamAudioTrack_0_1>() {
19 return PPB_MEDIASTREAMAUDIOTRACK_INTERFACE_0_1;
22 } // namespace
24 MediaStreamAudioTrack::MediaStreamAudioTrack() {
27 MediaStreamAudioTrack::MediaStreamAudioTrack(
28 const MediaStreamAudioTrack& other) : Resource(other) {
31 MediaStreamAudioTrack::MediaStreamAudioTrack(const Resource& resource)
32 : Resource(resource) {
33 PP_DCHECK(IsMediaStreamAudioTrack(resource));
36 MediaStreamAudioTrack::MediaStreamAudioTrack(PassRef, PP_Resource resource)
37 : Resource(PASS_REF, resource) {
40 MediaStreamAudioTrack::~MediaStreamAudioTrack() {
43 int32_t MediaStreamAudioTrack::Configure(uint32_t samples_per_frame,
44 uint32_t frame_buffer_size) {
45 if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
46 return get_interface<PPB_MediaStreamAudioTrack_0_1>()->Configure(
47 pp_resource(), samples_per_frame, frame_buffer_size);
49 return PP_ERROR_NOINTERFACE;
52 std::string MediaStreamAudioTrack::GetId() const {
53 if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
54 pp::Var id(PASS_REF, get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetId(
55 pp_resource()));
56 if (id.is_string())
57 return id.AsString();
59 return std::string();
62 bool MediaStreamAudioTrack::HasEnded() const {
63 if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
64 return PP_ToBool(get_interface<PPB_MediaStreamAudioTrack_0_1>()->HasEnded(
65 pp_resource()));
67 return true;
70 int32_t MediaStreamAudioTrack::GetFrame(
71 const CompletionCallbackWithOutput<AudioFrame>& cc) {
72 if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
73 return get_interface<PPB_MediaStreamAudioTrack_0_1>()->GetFrame(
74 pp_resource(), cc.output(), cc.pp_completion_callback());
76 return cc.MayForce(PP_ERROR_NOINTERFACE);
79 int32_t MediaStreamAudioTrack::RecycleFrame(const AudioFrame& frame) {
80 if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
81 return get_interface<PPB_MediaStreamAudioTrack_0_1>()->RecycleFrame(
82 pp_resource(), frame.pp_resource());
84 return PP_ERROR_NOINTERFACE;
87 void MediaStreamAudioTrack::Close() {
88 if (has_interface<PPB_MediaStreamAudioTrack_0_1>())
89 get_interface<PPB_MediaStreamAudioTrack_0_1>()->Close(pp_resource());
92 // static
93 bool MediaStreamAudioTrack::IsMediaStreamAudioTrack(const Resource& resource) {
94 if (has_interface<PPB_MediaStreamAudioTrack_0_1>()) {
95 return PP_ToBool(get_interface<PPB_MediaStreamAudioTrack_0_1>()->
96 IsMediaStreamAudioTrack(resource.pp_resource()));
98 return false;
101 } // namespace pp