/*************************************************************************************** * * IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. * * By downloading, copying, installing or using the software you agree to this license. * If you do not agree to this license, do not download, install, * copy or use the software. * * Copyright (C) 2014-2024, Happytimesoft Corporation, all rights reserved. * * Redistribution and use in binary forms, with or without modification, are permitted. * * Unless required by applicable law or agreed to in writing, software distributed * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific * language governing permissions and limitations under the License. * ****************************************************************************************/ #ifndef _GLES_INPUT_H_ #define _GLES_INPUT_H_ #include "sys_inc.h" #include #ifdef ANDROID #include #endif #define NUM_BUFFERS 2 typedef void (*GlesInputCB)(uint8 * pdata, int len, void * puser); class GlesInput { public: GlesInput(); ~GlesInput(); bool start(int samplerete); void stop(); void setCallback(GlesInputCB cb, void * puser); void setBufferSize(int value); int bufferSize() const; void processBuffer(); private: bool startRecording(int samplerete); void stopRecording(); private: SLObjectItf m_recorderObject; SLRecordItf m_recorder; #ifdef ANDROID SLuint32 m_recorderPreset; SLAndroidSimpleBufferQueueItf m_bufferQueue; #else SLBufferQueueItf m_bufferQueue; #endif int m_bufferSize; uint8 * m_buffers[NUM_BUFFERS]; int m_currentBuffer; GlesInputCB m_pCallback; void * m_pUserdata; }; #endif