13af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi/* 23af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * Copyright (C) 2010 The Android Open Source Project 33af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * 43af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * Licensed under the Apache License, Version 2.0 (the "License"); 53af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * you may not use this file except in compliance with the License. 63af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * You may obtain a copy of the License at 73af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * 83af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * http://www.apache.org/licenses/LICENSE-2.0 93af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * 103af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * Unless required by applicable law or agreed to in writing, software 113af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * distributed under the License is distributed on an "AS IS" BASIS, 123af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * See the License for the specific language governing permissions and 143af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi * limitations under the License. 153af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi */ 163af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 17369f3138f19f7102bf0f98b890ab84c8df633a93Glenn Kasten/* \file CAudioRecorder.c AudioRecorder class */ 183af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 193af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi#include "sles_allinclusive.h" 203af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 213af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 22369f3138f19f7102bf0f98b890ab84c8df633a93Glenn Kasten/** \brief Hook called by Object::Realize when an audio recorder is realized */ 233af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 243af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel TriviSLresult CAudioRecorder_Realize(void *self, SLboolean async) 253af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi{ 263af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi SLresult result = SL_RESULT_SUCCESS; 273af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 283af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi#ifdef ANDROID 29bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten CAudioRecorder *thiz = (CAudioRecorder *) self; 30bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten result = android_audioRecorder_realize(thiz, async); 313af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi#endif 323af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 333af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi return result; 343af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi} 353af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 363af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 37369f3138f19f7102bf0f98b890ab84c8df633a93Glenn Kasten/** \brief Hook called by Object::Resume when an audio recorder is resumed */ 38928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten 393af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel TriviSLresult CAudioRecorder_Resume(void *self, SLboolean async) 403af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi{ 41928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten return SL_RESULT_SUCCESS; 423af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi} 433af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 443af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 45369f3138f19f7102bf0f98b890ab84c8df633a93Glenn Kasten/** \brief Hook called by Object::Destroy when an audio recorder is destroyed */ 463af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi 473af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivivoid CAudioRecorder_Destroy(void *self) 483af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi{ 49bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten CAudioRecorder *thiz = (CAudioRecorder *) self; 50bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mDataSource); 51bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten freeDataLocatorFormat(&thiz->mDataSink); 524b65ef9efdf5aba01bea89d8cdd64f500560a28dGlenn Kasten#ifdef ANDROID 53bcc5c7225e3b7a1dbf2e9e830987f69167acf06fGlenn Kasten android_audioRecorder_destroy(thiz); 543af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi#endif 553af2a8dd03f3113d5da1000dd79c143a9f0c4f36Jean-Michel Trivi} 56928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten 57928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten 58928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten/** \brief Hook called by Object::Destroy before an audio recorder is about to be destroyed */ 59928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten 601d081e49a10543018e1ae33792bd3d30504719baGlenn Kastenpredestroy_t CAudioRecorder_PreDestroy(void *self) 61928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten{ 62460bdad43aaec3c6ffe7f259719e00807742ad6dGlenn Kasten CAudioRecorder *thiz = (CAudioRecorder *) self; 63460bdad43aaec3c6ffe7f259719e00807742ad6dGlenn Kasten#ifdef ANDROID 64460bdad43aaec3c6ffe7f259719e00807742ad6dGlenn Kasten android_audioRecorder_preDestroy(thiz); 65460bdad43aaec3c6ffe7f259719e00807742ad6dGlenn Kasten#endif 661d081e49a10543018e1ae33792bd3d30504719baGlenn Kasten return predestroy_ok; 67928ea4ffff40c82987cfb1ac9e3095fdc6968709Glenn Kasten} 68