NuPlayerDriver.cpp revision f933441648ef6a71dee783d733aac17b9508b452
1f933441648ef6a71dee783d733aac17b9508b452Andreas Huber/*
2f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * Copyright (C) 2010 The Android Open Source Project
3f933441648ef6a71dee783d733aac17b9508b452Andreas Huber *
4f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
5f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * you may not use this file except in compliance with the License.
6f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * You may obtain a copy of the License at
7f933441648ef6a71dee783d733aac17b9508b452Andreas Huber *
8f933441648ef6a71dee783d733aac17b9508b452Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
9f933441648ef6a71dee783d733aac17b9508b452Andreas Huber *
10f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * Unless required by applicable law or agreed to in writing, software
11f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
12f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * See the License for the specific language governing permissions and
14f933441648ef6a71dee783d733aac17b9508b452Andreas Huber * limitations under the License.
15f933441648ef6a71dee783d733aac17b9508b452Andreas Huber */
16f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
17f933441648ef6a71dee783d733aac17b9508b452Andreas Huber//#define LOG_NDEBUG 0
18f933441648ef6a71dee783d733aac17b9508b452Andreas Huber#define LOG_TAG "NuPlayerDriver"
19f933441648ef6a71dee783d733aac17b9508b452Andreas Huber#include <utils/Log.h>
20f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
21f933441648ef6a71dee783d733aac17b9508b452Andreas Huber#include "NuPlayerDriver.h"
22f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
23f933441648ef6a71dee783d733aac17b9508b452Andreas Huber#include "NuPlayer.h"
24f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
25f933441648ef6a71dee783d733aac17b9508b452Andreas Huber#include <media/stagefright/foundation/ALooper.h>
26f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
27f933441648ef6a71dee783d733aac17b9508b452Andreas Hubernamespace android {
28f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
29f933441648ef6a71dee783d733aac17b9508b452Andreas HuberNuPlayerDriver::NuPlayerDriver()
30f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    : mLooper(new ALooper) {
31f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mLooper->setName("NuPlayerDriver Looper");
32f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
33f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mLooper->start(
34f933441648ef6a71dee783d733aac17b9508b452Andreas Huber            false, /* runOnCallingThread */
35f933441648ef6a71dee783d733aac17b9508b452Andreas Huber            true,  /* canCallJava */
36f933441648ef6a71dee783d733aac17b9508b452Andreas Huber            PRIORITY_AUDIO);
37f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
38f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mPlayer = new NuPlayer;
39f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mLooper->registerHandler(mPlayer);
40f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
41f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mPlayer->setListener(this);
42f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
43f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
44f933441648ef6a71dee783d733aac17b9508b452Andreas HuberNuPlayerDriver::~NuPlayerDriver() {
45f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mLooper->stop();
46f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
47f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
48f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::initCheck() {
49f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
50f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
51f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
52f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::setDataSource(
53f933441648ef6a71dee783d733aac17b9508b452Andreas Huber        const char *url, const KeyedVector<String8, String8> *headers) {
54f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
55f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
56f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
57f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::setDataSource(int fd, int64_t offset, int64_t length) {
58f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
59f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
60f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
61f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::setDataSource(const sp<IStreamSource> &source) {
62f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mPlayer->setDataSource(source);
63f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
64f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
65f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
66f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
67f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::setVideoSurface(const sp<Surface> &surface) {
68f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mPlayer->setVideoSurface(surface);
69f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
70f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
71f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
72f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
73f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::prepare() {
74f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
75f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
76f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
77f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::prepareAsync() {
78f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
79f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
80f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
81f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::start() {
82f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mPlayer->start();
83f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
84f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
85f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
86f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
87f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::stop() {
88f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
89f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
90f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
91f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::pause() {
92f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
93f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
94f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
95f933441648ef6a71dee783d733aac17b9508b452Andreas Huberbool NuPlayerDriver::isPlaying() {
96f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return false;
97f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
98f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
99f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::seekTo(int msec) {
100f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
101f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
102f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
103f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::getCurrentPosition(int *msec) {
104f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
105f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
106f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
107f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::getDuration(int *msec) {
108f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
109f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
110f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
111f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::reset() {
112f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return OK;
113f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
114f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
115f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::setLooping(int loop) {
116f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
117f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
118f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
119f933441648ef6a71dee783d733aac17b9508b452Andreas Huberplayer_type NuPlayerDriver::playerType() {
120f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return NU_PLAYER;
121f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
122f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
123f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::invoke(const Parcel &request, Parcel *reply) {
124f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
125f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
126f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
127f933441648ef6a71dee783d733aac17b9508b452Andreas Hubervoid NuPlayerDriver::setAudioSink(const sp<AudioSink> &audioSink) {
128f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    mPlayer->setAudioSink(audioSink);
129f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
130f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
131f933441648ef6a71dee783d733aac17b9508b452Andreas Huberstatus_t NuPlayerDriver::getMetadata(
132f933441648ef6a71dee783d733aac17b9508b452Andreas Huber        const media::Metadata::Filter& ids, Parcel *records) {
133f933441648ef6a71dee783d733aac17b9508b452Andreas Huber    return INVALID_OPERATION;
134f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}
135f933441648ef6a71dee783d733aac17b9508b452Andreas Huber
136f933441648ef6a71dee783d733aac17b9508b452Andreas Huber}  // namespace android
137