| 1 /* |
|
| 2 The mediastreamer library aims at providing modular media processing and I/O |
|
| 3 for linphone, but also for any telephony application. |
|
| 4 Copyright (C) 2001 Simon MORLAT simon.morlat@linphone.org |
|
| 5 |
|
| 6 This library is free software; you can redistribute it and/or |
|
| 7 modify it under the terms of the GNU Lesser General Public |
|
| 8 License as published by the Free Software Foundation; either |
|
| 9 version 2.1 of the License, or (at your option) any later version. |
|
| 10 |
|
| 11 This library is distributed in the hope that it will be useful, |
|
| 12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
| 14 Lesser General Public License for more details. |
|
| 15 |
|
| 16 You should have received a copy of the GNU Lesser General Public |
|
| 17 License along with this library; if not, write to the Free Software |
|
| 18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
| 19 */ |
|
| 20 |
|
| 21 |
|
| 22 #ifndef MSGSMENCODER_H |
|
| 23 #define MSGSMENCODER_H |
|
| 24 |
|
| 25 #include "msfilter.h" |
|
| 26 #include <gsm.h> |
|
| 27 |
|
| 28 /*this is the class that implements a GSMencoder filter*/ |
|
| 29 |
|
| 30 #define MSGSMENCODER_MAX_INPUTS 1 /* max output per filter*/ |
|
| 31 |
|
| 32 |
|
| 33 typedef struct _MSGSMEncoder |
|
| 34 { |
|
| 35 /* the MSGSMEncoder derivates from MSFilter, so the MSFilter object MUST be the first of the MSGSMEncoder object |
|
| 36 in order to the object mechanism to work*/ |
|
| 37 MSFilter filter; |
|
| 38 MSFifo *f_inputs[MSGSMENCODER_MAX_INPUTS]; |
|
| 39 MSFifo *f_outputs[MSGSMENCODER_MAX_INPUTS]; |
|
| 40 gsm gsm_handle; |
|
| 41 } MSGSMEncoder; |
|
| 42 |
|
| 43 typedef struct _MSGSMEncoderClass |
|
| 44 { |
|
| 45 /* the MSGSMEncoder derivates from MSFilter, so the MSFilter class MUST be the first of the MSGSMEncoder class |
|
| 46 in order to the class mechanism to work*/ |
|
| 47 MSFilterClass parent_class; |
|
| 48 } MSGSMEncoderClass; |
|
| 49 |
|
| 50 /* PUBLIC */ |
|
| 51 #define MS_GSMENCODER(filter) ((MSGSMEncoder*)(filter)) |
|
| 52 #define MS_GSMENCODER_CLASS(klass) ((MSGSMEncoderClass*)(klass)) |
|
| 53 MSFilter * ms_GSMencoder_new(void); |
|
| 54 |
|
| 55 /* FOR INTERNAL USE*/ |
|
| 56 void ms_GSMencoder_init(MSGSMEncoder *r); |
|
| 57 void ms_GSMencoder_class_init(MSGSMEncoderClass *klass); |
|
| 58 void ms_GSMencoder_destroy( MSGSMEncoder *obj); |
|
| 59 void ms_GSMencoder_process(MSGSMEncoder *r); |
|
| 60 |
|
| 61 #endif |
|