--- a/src/mediastreamer/sndcard.h Mon Apr 16 00:43:53 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* - The mediastreamer library aims at providing modular media processing and I/O - for linphone, but also for any telephony application. - Copyright (C) 2001 Simon MORLAT simon.morlat@linphone.org - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - - - -#ifndef SNDCARD_H -#define SNDCARD_H - -#undef PACKAGE -#undef VERSION -#include <config.h> -#undef PACKAGE -#undef VERSION - -#ifdef HAVE_GLIB -#include <glib.h> -#else -#include <uglib.h> -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* the base class for all soundcards: SndCard */ -struct _SndCard; - -typedef int (*SndCardOpenFunc)(struct _SndCard*,int, int, int); -typedef void (*SndCardSetBlockingModeFunc)(struct _SndCard*, gboolean ); -typedef void (*SndCardCloseFunc)(struct _SndCard*); -typedef gint (*SndCardIOFunc)(struct _SndCard*,char *,int); -typedef void (*SndCardDestroyFunc)(struct _SndCard*); -typedef gboolean (*SndCardPollFunc)(struct _SndCard*); -typedef gint (*SndCardMixerGetLevelFunc)(struct _SndCard*,gint); -typedef void (*SndCardMixerSetRecSourceFunc)(struct _SndCard*,gint); -typedef void (*SndCardMixerSetLevelFunc)(struct _SndCard*,gint ,gint); -typedef struct _MSFilter * (*SndCardCreateFilterFunc)(struct _SndCard *); - -struct _SndCard -{ - gchar *card_name; /* SB16 PCI for example */ - gint index; - gint bsize; - gint rate; - gint stereo; - gint bits; - gint flags; -#define SND_CARD_FLAGS_OPENED 1 - SndCardOpenFunc _probe; - SndCardOpenFunc _open_r; - SndCardOpenFunc _open_w; - SndCardSetBlockingModeFunc _set_blocking_mode; - SndCardPollFunc _can_read; - SndCardIOFunc _read; - SndCardIOFunc _write; - SndCardCloseFunc _close_r; - SndCardCloseFunc _close_w; - SndCardMixerGetLevelFunc _get_level; - SndCardMixerSetLevelFunc _set_level; - SndCardMixerSetRecSourceFunc _set_rec_source; - SndCardCreateFilterFunc _create_read_filter; - SndCardCreateFilterFunc _create_write_filter; - SndCardDestroyFunc _destroy; -}; - - -typedef struct _SndCard SndCard; - -void snd_card_init(SndCard *obj); -void snd_card_uninit(SndCard *obj); -gint snd_card_probe(SndCard *obj, int bits, int stereo, int rate); -int snd_card_open_r(SndCard *obj, int bits, int stereo, int rate); -int snd_card_open_w(SndCard *obj, int bits, int stereo, int rate); -int snd_card_get_bsize(SndCard *obj); -gboolean snd_card_can_read(SndCard *obj); -int snd_card_read(SndCard *obj,char *buffer,int size); -int snd_card_write(SndCard *obj,char *buffer,int size); -void snd_card_set_blocking_mode(SndCard *obj,gboolean yesno); -void snd_card_close_r(SndCard *obj); -void snd_card_close_w(SndCard *obj); - -void snd_card_set_rec_source(SndCard *obj, int source); /* source='l' or 'm'*/ -void snd_card_set_level(SndCard *obj, int way, int level); -gint snd_card_get_level(SndCard *obj,int way); - -const gchar *snd_card_get_identifier(SndCard *obj); - -struct _MSFilter * snd_card_create_read_filter(SndCard *sndcard); -struct _MSFilter * snd_card_create_write_filter(SndCard *sndcard); - - -#define SND_CARD_LEVEL_GENERAL 1 -#define SND_CARD_LEVEL_INPUT 2 -#define SND_CARD_LEVEL_OUTPUT 3 - - -int snd_card_destroy(SndCard *obj); - -#define SND_CARD(obj) ((SndCard*)(obj)) - - - - -/* SndCardManager */ - -#define MAX_SND_CARDS 20 - - -struct _SndCardManager -{ - SndCard *cards[MAX_SND_CARDS]; -}; - -typedef struct _SndCardManager SndCardManager; - -void snd_card_manager_init(SndCardManager *manager); -SndCard * snd_card_manager_get_card(SndCardManager *manager,int index); -SndCard * snd_card_manager_get_card_with_string(SndCardManager *manager,const char *cardname,int *index); - -extern SndCardManager *snd_card_manager; - -#ifdef __cplusplus -} -#endif - -#endif