| 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 #ifndef MSOSSWRITE_H |
|
| 21 #define MSOSSWRITE_H |
|
| 22 |
|
| 23 #include "mssoundwrite.h" |
|
| 24 #include "sndcard.h" |
|
| 25 |
|
| 26 /*this is the class that implements oss writing sink filter*/ |
|
| 27 |
|
| 28 #define MS_OSS_WRITE_MAX_INPUTS 1 /* max output per filter*/ |
|
| 29 |
|
| 30 #define MS_OSS_WRITE_DEF_GRAN (512*2) /* the default granularity*/ |
|
| 31 |
|
| 32 struct _MSOssWrite |
|
| 33 { |
|
| 34 /* the MSOssWrite derivates from MSSoundWrite, so the MSSoundWrite object MUST be the first of the MSOssWrite object |
|
| 35 in order to the object mechanism to work*/ |
|
| 36 MSSoundWrite filter; |
|
| 37 MSFifo *f_inputs[MS_OSS_WRITE_MAX_INPUTS]; |
|
| 38 gint devid; /* the sound device id it depends on*/ |
|
| 39 SndCard *sndcard; |
|
| 40 gint bsize; |
|
| 41 gint freq; |
|
| 42 gint channels; |
|
| 43 gdouble lowfreq; |
|
| 44 gdouble highfreq; |
|
| 45 gint dtmf_time; |
|
| 46 gint dtmf_duration; |
|
| 47 }; |
|
| 48 |
|
| 49 typedef struct _MSOssWrite MSOssWrite; |
|
| 50 |
|
| 51 struct _MSOssWriteClass |
|
| 52 { |
|
| 53 /* the MSOssWrite derivates from MSSoundWrite, so the MSSoundWrite class MUST be the first of the MSOssWrite class |
|
| 54 in order to the class mechanism to work*/ |
|
| 55 MSSoundWriteClass parent_class; |
|
| 56 }; |
|
| 57 |
|
| 58 typedef struct _MSOssWriteClass MSOssWriteClass; |
|
| 59 |
|
| 60 /* PUBLIC */ |
|
| 61 #define MS_OSS_WRITE(filter) ((MSOssWrite*)(filter)) |
|
| 62 #define MS_OSS_WRITE_CLASS(klass) ((MSOssWriteClass*)(klass)) |
|
| 63 MSFilter * ms_oss_write_new(void); |
|
| 64 gint ms_oss_write_set_device(MSOssWrite *w,gint devid); |
|
| 65 void ms_oss_write_start(MSOssWrite *w); |
|
| 66 void ms_oss_write_stop(MSOssWrite *w); |
|
| 67 void ms_oss_write_set_level(MSOssWrite *w, gint level); |
|
| 68 void ms_oss_write_play_dtmf(MSOssWrite *w, char dtmf); |
|
| 69 |
|
| 70 /* FOR INTERNAL USE*/ |
|
| 71 void ms_oss_write_init(MSOssWrite *r); |
|
| 72 void ms_oss_write_setup(MSOssWrite *r); |
|
| 73 void ms_oss_write_class_init(MSOssWriteClass *klass); |
|
| 74 void ms_oss_write_destroy( MSOssWrite *obj); |
|
| 75 void ms_oss_write_process(MSOssWrite *f); |
|
| 76 |
|
| 77 |
|
| 78 #endif |
|