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