android_LocAVPlayer.cpp revision 2b06e20ae32388f6e1dfd088d9773c34e6b1cb45
197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi/*
297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * Copyright (C) 2011 The Android Open Source Project
397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi *
497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License");
597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * you may not use this file except in compliance with the License.
697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * You may obtain a copy of the License at
797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi *
897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi *      http://www.apache.org/licenses/LICENSE-2.0
997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi *
1097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software
1197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS,
1297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * See the License for the specific language governing permissions and
1497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi * limitations under the License.
1597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi */
1697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
1797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi//#define USE_LOG SLAndroidLogLevel_Verbose
1897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
1997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi#include "sles_allinclusive.h"
2097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi#include <media/IMediaPlayerService.h>
212b06e20ae32388f6e1dfd088d9773c34e6b1cb45Jean-Michel Trivi#include "android_LocAVPlayer.h"
2297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
2397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
2497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivinamespace android {
2597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
2697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi//--------------------------------------------------------------------------------------------------
2768d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel TriviLocAVPlayer::LocAVPlayer(AudioPlayback_Parameters* params, bool hasVideo) :
2868d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel Trivi        GenericMediaPlayer(params, hasVideo)
2997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi{
30e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi    SL_LOGD("LocAVPlayer::LocAVPlayer()");
3197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
3297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi}
3397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
3497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
3597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel TriviLocAVPlayer::~LocAVPlayer() {
36e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi    SL_LOGD("LocAVPlayer::~LocAVPlayer()");
3797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
3897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi}
3997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
4097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
4197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi//--------------------------------------------------
4297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi// Event handlers
4397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivivoid LocAVPlayer::onPrepare() {
44e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi    SL_LOGD("LocAVPlayer::onPrepare()");
4597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi    switch (mDataLocatorType) {
4697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi    case kDataLocatorUri:
4797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        mPlayer = mMediaPlayerService->create(getpid(), mPlayerClient /*IMediaPlayerClient*/,
4868d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel Trivi                mDataLocator.uriRef /*url*/, NULL /*headers*/, mPlaybackParams.sessionId);
4997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        break;
5097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi    case kDataLocatorFd:
5197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        mPlayer = mMediaPlayerService->create(getpid(), mPlayerClient /*IMediaPlayerClient*/,
5297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi                mDataLocator.fdi.fd, mDataLocator.fdi.offset, mDataLocator.fdi.length,
5397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi                mPlaybackParams.sessionId);
5497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        break;
5597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi    case kDataLocatorNone:
5697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        SL_LOGE("no data locator for MediaPlayer object");
5797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        break;
5897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi    default:
5997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        SL_LOGE("unsupported data locator %d for MediaPlayer object", mDataLocatorType);
6097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi        break;
6197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi    }
6297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi    // blocks until mPlayer is prepared
6368d56b8ebaf60184a3aef988e3d2b09ed8b88c05Jean-Michel Trivi    GenericMediaPlayer::onPrepare();
64e9236d046fdb5cac0696c42e03443a2439188146Jean-Michel Trivi    SL_LOGD("LocAVPlayer::onPrepare() done");
6597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi}
6697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi
6797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi} // namespace android
68