194a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten/* 294a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * Copyright (C) 2010 The Android Open Source Project 394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * 494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * you may not use this file except in compliance with the License. 694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * You may obtain a copy of the License at 794a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * 894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * 1094a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * Unless required by applicable law or agreed to in writing, software 1194a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 1294a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * See the License for the specific language governing permissions and 1494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten * limitations under the License. 1594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten */ 1694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 1794a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten/** \file CMediaPlayer.c MediaPlayer class */ 1894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 1994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten#include "sles_allinclusive.h" 2094a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 2194a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten#ifdef ANDROID 222b06e20ae32388f6e1dfd088d9773c34e6b1cb45Jean-Michel Trivi#include "android/android_GenericMediaPlayer.h" 2394a37e8117fb72790882dfb815f99e2365754c74Glenn Kastenusing namespace android; 2494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten#endif 2594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 2694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 2794a37e8117fb72790882dfb815f99e2365754c74Glenn KastenXAresult CMediaPlayer_Realize(void *self, XAboolean async) 2894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten{ 290e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi XAresult result = XA_RESULT_SUCCESS; 30eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi 31eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi#ifdef ANDROID 3271139e6bc1f077d285fb04629925d99383d1114fGlenn Kasten CMediaPlayer *thiz = (CMediaPlayer *) self; 3371139e6bc1f077d285fb04629925d99383d1114fGlenn Kasten 340e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi // realize player 35eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi result = android_Player_realize(thiz, async); 3694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten#endif 370e47a0657162bbff48886ea2f5c68d9edb607768Jean-Michel Trivi 38eae4df541ba1d46f65d37e959baf2127aa632c93Jean-Michel Trivi return result; 3994a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten} 4094a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 4194a37e8117fb72790882dfb815f99e2365754c74Glenn KastenXAresult CMediaPlayer_Resume(void *self, XAboolean async) 4294a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten{ 4394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten return XA_RESULT_SUCCESS; 4494a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten} 4594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 4694a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 4794a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten/** \brief Hook called by Object::Destroy when a media player is destroyed */ 4894a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 4994a37e8117fb72790882dfb815f99e2365754c74Glenn Kastenvoid CMediaPlayer_Destroy(void *self) 5094a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten{ 51bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten CMediaPlayer *thiz = (CMediaPlayer *) self; 52bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mDataSource); 53bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mBankSource); 54bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mAudioSink); 55bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mImageVideoSink); 56bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mVibraSink); 57bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mLEDArraySink); 5897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi#ifdef ANDROID 59bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten android_Player_destroy(thiz); 6097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi#endif 6194a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten} 6294a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 6394a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten 641d081e49a10543018e1ae33792bd3d30504719baGlenn Kastenpredestroy_t CMediaPlayer_PreDestroy(void *self) 6594a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten{ 66485a038f9f0f898227b8ab4218e94c5d56b6ed0bGlenn Kasten#ifdef ANDROID 677da229586b6c8893a1731bfe3eae7996e2ccffc6Glenn Kasten CMediaPlayer *thiz = (CMediaPlayer *) self; 68485a038f9f0f898227b8ab4218e94c5d56b6ed0bGlenn Kasten android_Player_preDestroy(thiz); 69485a038f9f0f898227b8ab4218e94c5d56b6ed0bGlenn Kasten#endif 701d081e49a10543018e1ae33792bd3d30504719baGlenn Kasten return predestroy_ok; 7194a37e8117fb72790882dfb815f99e2365754c74Glenn Kasten} 72