mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-24 22:58:13 +00:00
add support for dynamic plugging of sndcards in winsnd2.c
git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@569 3f6dc0c8-ddfe-455d-9043-3cd528dc4637
This commit is contained in:
parent
c0b87b35a9
commit
4b3f6ea976
2 changed files with 29 additions and 33 deletions
|
|
@ -1,8 +1,8 @@
|
|||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
|
@ -10,7 +10,10 @@ unlimited permission to copy, distribute and modify it.
|
|||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
Briefly, the shell commands `./configure; make; make install' should
|
||||
configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the `README' file for
|
||||
instructions specific to this package.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
|
|
@ -23,9 +26,9 @@ debugging `configure').
|
|||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
the results of its tests to speed up reconfiguring. Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
cache files.
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
|
|
@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you
|
|||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||
you want to change it or regenerate `configure' using a newer version
|
||||
of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
`./configure' to configure the package for your system.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
Running `configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ details on some of the pertinent environment variables.
|
|||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
|
|
@ -87,17 +87,15 @@ Compiling For Multiple Architectures
|
|||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
With a non-GNU `make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use `make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
|
@ -190,12 +188,12 @@ them in the `configure' command line, using `VAR=value'. For example:
|
|||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script). Here is a another example:
|
||||
overridden in the site shell script).
|
||||
|
||||
/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
||||
|
||||
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
|
||||
configuration-related scripts to be executed by `/bin/bash'.
|
||||
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
|
|
|||
|
|
@ -775,8 +775,7 @@ static void deactivate_removed_cards(MSSndCardManager *m){
|
|||
const MSList *elem=ms_snd_card_manager_get_list(m);
|
||||
for(;elem!=NULL;elem=elem->next){
|
||||
card=(MSSndCard*)elem->data;
|
||||
if (strcmp(card->desc->driver_type, winsnd_card_desc.driver_type)==0
|
||||
&& strcmp(card->name,name)==0){
|
||||
if (strcmp(card->desc->driver_type, winsnd_card_desc.driver_type)==0){
|
||||
/*mark all cards as potentially removed, detect will check them immediately after */
|
||||
WinSndCard *d=(WinSndCard*)card->data;
|
||||
if (d->removed) card->capabilities=0;
|
||||
|
|
@ -789,8 +788,7 @@ static void mark_as_removed(MSSndCardManager *m){
|
|||
const MSList *elem=ms_snd_card_manager_get_list(m);
|
||||
for(;elem!=NULL;elem=elem->next){
|
||||
card=(MSSndCard*)elem->data;
|
||||
if (strcmp(card->desc->driver_type, winsnd_card_desc.driver_type)==0
|
||||
&& strcmp(card->name,name)==0){
|
||||
if (strcmp(card->desc->driver_type, winsnd_card_desc.driver_type)==0){
|
||||
/*mark all cards as potentially removed, detect will check them immediately after */
|
||||
WinSndCard *d=(WinSndCard*)card->data;
|
||||
d->removed=1;
|
||||
|
|
@ -805,7 +803,7 @@ static void * new_device_polling_thread(void *ignore){
|
|||
MSSndCardManager *m;
|
||||
/*check for new devices every 2 seconds*/
|
||||
while(poller_running){
|
||||
ms_sleep(2000);
|
||||
ms_sleep(2);
|
||||
if (poller_running){
|
||||
m=ms_snd_card_manager_get();
|
||||
if(!m) break;
|
||||
|
|
@ -818,8 +816,8 @@ static void * new_device_polling_thread(void *ignore){
|
|||
}
|
||||
|
||||
static void stop_poller(){
|
||||
poller_running=false;
|
||||
ms_thread_join(poller_thread);
|
||||
poller_running=FALSE;
|
||||
ms_thread_join(poller_thread,NULL);
|
||||
}
|
||||
|
||||
static void winsndcard_detect(MSSndCardManager *m){
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue