android_AudioToCbRenderer.h revision 2b06e20ae32388f6e1dfd088d9773c34e6b1cb45
1fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn/* 28a2ca60963f77938e1a611f2342ad043dc9467cfDianne Hackborn * Copyright (C) 2011 The Android Open Source Project 3fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * 4fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * you may not use this file except in compliance with the License. 6fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * You may obtain a copy of the License at 7fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * 8fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * 10fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 11fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * See the License for the specific language governing permissions and 14fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn * limitations under the License. 15fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn */ 16fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 17fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn#include "android/android_AudioSfDecoder.h" 18fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 19fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn//-------------------------------------------------------------------------------------------------- 20fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackbornnamespace android { 21fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 22fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackbornclass AudioToCbRenderer : public AudioSfDecoder 23fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn{ 24fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackbornpublic: 25fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 26fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn AudioToCbRenderer(AudioPlayback_Parameters* params); 27fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn virtual ~AudioToCbRenderer(); 28fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 29fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn void setDataPushListener(const data_push_cbf_t pushCbf, void* pushUser); 30fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 31fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackbornprotected: 32fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 33fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn // Async event handlers (called from GenericPlayer's event loop) 34ea85d97d6a7eed3aedbde96bbeb40690599ef071Jeff Brown virtual void onPrepare(); 35fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn virtual void onRender(); 36fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 37fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn // overridden from AudioSfDecoder 38fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn virtual void createAudioSink(); 390574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov virtual void updateAudioSink(); 400574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov virtual void startAudioSink(); 41fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn virtual void pauseAudioSink(); 42fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 437dc96cc2410f551eefaa973ddc144146ad72d1ecDianne Hackbornprivate: 447dc96cc2410f551eefaa973ddc144146ad72d1ecDianne Hackborn 457dc96cc2410f551eefaa973ddc144146ad72d1ecDianne Hackborn data_push_cbf_t mDecodeCbf; 467dc96cc2410f551eefaa973ddc144146ad72d1ecDianne Hackborn void* mDecodeUser; 47fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 487dc96cc2410f551eefaa973ddc144146ad72d1ecDianne Hackbornprivate: 49fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn DISALLOW_EVIL_CONSTRUCTORS(AudioToCbRenderer); 50fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 51fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn}; 52fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn 53fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn} // namespace android 54fbabff99ccbcb576c713991c5db5dec21a0d0ce0Dianne Hackborn