android_defs.h revision 13837cf3f7be0eb8b1a9552bd99a89f98c987720
1f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi/* 2f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Copyright (C) 2010 The Android Open Source Project 3f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * 4f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License"); 5f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * you may not use this file except in compliance with the License. 6f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * You may obtain a copy of the License at 7f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * 8f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * http://www.apache.org/licenses/LICENSE-2.0 9f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * 10f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software 11f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS, 12f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * See the License for the specific language governing permissions and 14f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * limitations under the License. 15f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */ 16f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 17f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 18f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi/** 19f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Used to define the mapping from an OpenSL ES audio player to an Android 20f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * media framework object 21f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */ 22f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivienum AndroidObject_type { 23f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi INVALID_TYPE =-1, 24b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi A_PLR_URIFD = 0, // audio player, compressed data, URI or FD data source 25f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi A_PLR_PCM_BQ = 1, // audio player, PCM, buffer queue data source 26b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi A_PLR_TS_ABQ = 2, // audio player, transport stream, Android simple buffer queue data source 27b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi A_PLR_URIFD_ASQ = 3, // audio player, URI or FD data source (as in android::MediaPlayer), 28b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi // decoded to a PCM Android simple buffer queue data sink 29b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi AV_PLR_TS_ABQ = 4, // audio video player, transport stream, Android buffer queue data source 30b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi AV_PLR_URIFD = 5, // audio video player, URI or FD data source (as in android::MediaPlayer) 31b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi A_RCR_MIC_ASQ = 6, // audio recorder, device data source, 32b2aeb0f1009555181dabb944fe05901cb6e6f632Jean-Michel Trivi // streamed into a PCM Android simple buffer queue data sink 33f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi NUM_AUDIOPLAYER_MAP_TYPES 34f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi}; 35f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 36f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 37f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi/** 38f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Used to define the states of the OpenSL ES / OpenMAX AL object initialization and preparation 39f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * with regards to the Android-side of the data 40f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */ 41f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivienum AndroidObject_state { 42f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi ANDROID_UNINITIALIZED = -1, 43f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi ANDROID_PREPARING, 44f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi ANDROID_READY, 45f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi NUM_ANDROID_STATES 46f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi}; 47f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 48f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 49f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi#define ANDROID_DEFAULT_OUTPUT_STREAM_TYPE android::AudioSystem::MUSIC 50f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 51581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi#define PLAYER_SUCCESS 1 52581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi 5397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi#define PLAYER_FD_FIND_FILE_SIZE ((int64_t)0xFFFFFFFFFFFFFFFFll) 5497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 55f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 5613837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi/** 57f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Structure to maintain the set of audio levels about a player 58f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */ 59f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivitypedef struct AndroidAudioLevels_struct { 60f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi/** send level to aux effect, there's a single aux bus, so there's a single level */ 61f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi SLmillibel mAuxSendLevel; 62f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi /** 63f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Amplification (can be attenuation) factor derived for the VolumeLevel 64f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */ 65f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi float mAmplFromVolLevel; 66f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi /** 67f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Left/right amplification (can be attenuations) factors derived for the StereoPosition 68f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */ 69f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi float mAmplFromStereoPos[STEREO_CHANNELS]; 70f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi /** 71f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi * Attenuation factor derived from direct level 72f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi */ 73f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi float mAmplFromDirectLevel; 74f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi} AndroidAudioLevels; 75f271eea20f9fff6c101213b34652399f457bcd50Jean-Michel Trivi 76581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi 7713837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi/** 7813837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi * Event notification callback from Android to SL ES framework 7913837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi */ 8013837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivitypedef void (*notif_cbf_t)(int event, int data1, void* notifUser); 8113837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi 8213837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi/** 8313837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi * Audio data push callback from Android objects to SL ES framework 8413837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi */ 8513837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivitypedef size_t (*data_push_cbf_t)(const uint8_t *data, size_t size, void* user); 86581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi 87581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi 88581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi/** 8913837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi * Events sent to mNotifyClient during prepare, prefetch, and playback 9013837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi * used in APlayer::notify() and AMessage::findxxx() 91581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi */ 92581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi#define PLAYEREVENT_PREPARED "prep" 93581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi#define PLAYEREVENT_PREFETCHSTATUSCHANGE "prsc" 94581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi#define PLAYEREVENT_PREFETCHFILLLEVELUPDATE "pflu" 95581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi#define PLAYEREVENT_ENDOFSTREAM "eos" 96581a0f550f15f6fc22199cb85775a220f668b480Jean-Michel Trivi#define PLAYEREVENT_NEW_AUDIOTRACK "nwat" 9797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 9897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 9913837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi/** 10013837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi * Command parameters for AHandler commands 10113837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi */ 10213837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi#define WHATPARAM_SEEK_SEEKTIME_MS "seekTimeMs" 10313837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi#define WHATPARAM_LOOP_LOOPING "looping" 10413837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi 10597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivinamespace android { 10697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 10797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivienum { 10897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi kDataLocatorNone = 'none', 10997876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi kDataLocatorUri = 'uri', 11097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi kDataLocatorFd = 'fd', 11197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi }; 11297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 11397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivistruct FdInfo { 11497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi int fd; 11597876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi int64_t offset; 11697876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi int64_t length; 11797876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi}; 11897876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 11913837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi// TODO currently used by SfPlayer, to replace by DataLocator2 12097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Triviunion DataLocator { 12197876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi char* uri; 12297876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi FdInfo fdi; 12397876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi}; 12497876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi 12513837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Triviunion DataLocator2 { 12613837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi const char* uriRef; 12713837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi FdInfo fdi; 12813837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi}; 12913837cf3f7be0eb8b1a9552bd99a89f98c987720Jean-Michel Trivi 13097876858aa17c7f24c6a1d60be09a57bc1824ba3Jean-Michel Trivi} // namespace android 131