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