]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Fix resmgr support
authorTakashi Iwai <tiwai@suse.de>
Fri, 11 Feb 2005 16:35:24 +0000 (16:35 +0000)
committerTakashi Iwai <tiwai@suse.de>
Fri, 11 Feb 2005 16:35:24 +0000 (16:35 +0000)
Call normal open() before trying with res_open_device().
snd_open_device() is defined to do this procedure.

include/local.h
src/control/cards.c
src/control/control_hw.c
src/hwdep/hwdep_hw.c
src/pcm/pcm_hw.c
src/rawmidi/rawmidi_hw.c
src/seq/seq_hw.c
src/timer/timer_hw.c
src/timer/timer_query_hw.c

index 539c36ac9c78c62e95feee186c1c2a06290b47d2..6df4abca1f5df0d53a3d6b0526f86ae216587185 100644 (file)
@@ -34,6 +34,9 @@
 #include <errno.h>
 
 #include "config.h"
+#ifdef SUPPORT_RESMGR
+#include <resmgr.h>
+#endif
 
 #define _snd_config_iterator list_head
 #define _snd_interval sndrv_interval
@@ -216,4 +219,17 @@ extern snd_lib_error_handler_t snd_err_msg;
 # define link_warning(symbol, msg)
 #endif
 
+/* open with resmgr */
+#ifdef SUPPORT_RESMGR
+static inline int snd_open_device(const char *filename, int fmode)
+{
+       int fd = open(filename, fmode);
+       if (fd >= 0)
+               return fd;
+       return rsm_open_device(filename, fmode);
+}
+#else
+#define snd_open_device(filename, fmode) open(filename, fmode);
+#endif
+
 #endif
index fbadb17c12936b4543de741c0fd2c03d9b8d04df..2f452452ec02651a9acd93013520c59fbe5a0c9b 100644 (file)
@@ -33,9 +33,6 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include "control_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 #ifndef DOC_HIDDEN
 #define SND_FILE_CONTROL       "/dev/snd/controlC%i"
@@ -54,19 +51,11 @@ int snd_card_load(int card)
 
        sprintf(control, SND_FILE_CONTROL, card);
 
-#ifdef SUPPORT_RESMGR
-       open_dev = rsm_open_device(control, O_RDONLY);
-#else
-       open_dev = open(control, O_RDONLY);
-#endif
+       open_dev = snd_open_device(control, O_RDONLY);
        if (open_dev < 0) {
                char aload[32];
                sprintf(aload, SND_FILE_LOAD, card);
-#ifdef SUPPORT_RESMGR
-               open_dev = rsm_open_device(aload, O_RDONLY);
-#else
-               open_dev = open(aload, O_RDONLY);
-#endif
+               open_dev = snd_open_device(aload, O_RDONLY);
        }
        if (open_dev >= 0) {
                close (open_dev);
index eb4a594ab358d088b01ea2d0fabef65ca3803b6b..627a5e5ead1c4b1655ad43fd712e68aff603b189 100644 (file)
@@ -28,9 +28,6 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include "control_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 #ifndef PIC
 /* entry for static linking */
@@ -340,18 +337,10 @@ int snd_ctl_hw_open(snd_ctl_t **handle, const char *name, int card, int mode)
                fmode |= O_NONBLOCK;
        if (mode & SND_CTL_ASYNC)
                fmode |= O_ASYNC;
-#ifdef SUPPORT_RESMGR
-       fd = rsm_open_device(filename, fmode);
-#else
-       fd = open(filename, fmode);
-#endif
+       fd = snd_open_device(filename, fmode);
        if (fd < 0) {
                snd_card_load(card);
-#ifdef SUPPORT_RESMGR
-               fd = rsm_open_device(filename, fmode);
-#else
-               fd = open(filename, fmode);
-#endif
+               fd = snd_open_device(filename, fmode);
                if (fd < 0)
                        return -errno;
        }
index 22b7da124a59a3927253fd5f682fb2fbb453f14f..73a3637c322b2b922c349433455fd0a0c7777792 100644 (file)
@@ -26,9 +26,6 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include "hwdep_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 #ifndef PIC
 /* entry for static linking */
@@ -118,18 +115,10 @@ int snd_hwdep_hw_open(snd_hwdep_t **handle, const char *name, int card, int devi
        if (card < 0 || card >= 32)
                return -EINVAL;
        sprintf(filename, SNDRV_FILE_HWDEP, card, device);
-#ifdef SUPPORT_RESMGR
-       fd = rsm_open_device(filename, mode);
-#else
-       fd = open(filename, mode);
-#endif
+       fd = snd_open_device(filename, mode);
        if (fd < 0) {
                snd_card_load(card);
-#ifdef SUPPORT_RESMGR
-               fd = rsm_open_device(filename, mode);
-#else
-               fd = open(filename, mode);
-#endif
+               fd = snd_open_device(filename, mode);
                if (fd < 0)
                        return -errno;
        }
index 91440540dccb4c6a3060cd6ea43028452fbe2945..8735a0ca543759527a7edd11c266e36a5cd00ab2 100644 (file)
@@ -39,9 +39,6 @@
 #include <sys/shm.h>
 #include "pcm_local.h"
 #include "../control/control_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 //#define DEBUG_RW             /* use to debug readi/writei/readn/writen */
 //#define DEBUG_MMAP           /* debug mmap_commit */
@@ -1206,11 +1203,7 @@ int snd_pcm_hw_open(snd_pcm_t **pcmp, const char *name,
                fmode |= O_NONBLOCK;
        if (mode & SND_PCM_ASYNC)
                fmode |= O_ASYNC;
-#ifdef SUPPORT_RESMGR
-       fd = rsm_open_device(filename, fmode);
-#else
-       fd = open(filename, fmode);
-#endif
+       fd = snd_open_device(filename, fmode);
        if (fd < 0) {
                ret = -errno;
                SYSMSG("open %s failed", filename);
index 279e6919d2c19a8ba0e7904c5b56b93d4ea739de..6f084bc3c632a9247d9d08dc501bfd53176ee2f5 100644 (file)
@@ -28,9 +28,6 @@
 #include <sys/ioctl.h>
 #include "../control/control_local.h"
 #include "rawmidi_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 #ifndef PIC
 /* entry for static linking */
@@ -223,18 +220,10 @@ int snd_rawmidi_hw_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
 
        assert(!(mode & ~(SND_RAWMIDI_APPEND|SND_RAWMIDI_NONBLOCK|SND_RAWMIDI_SYNC)));
 
-#ifdef SUPPORT_RESMGR
-       fd = rsm_open_device(filename, fmode);
-#else
-       fd = open(filename, fmode);
-#endif
+       fd = snd_open_device(filename, fmode);
        if (fd < 0) {
                snd_card_load(card);
-#ifdef SUPPORT_RESMGR
-               fd = rsm_open_device(filename, fmode);
-#else
-               fd = open(filename, fmode);
-#endif
+               fd = snd_open_device(filename, fmode);
                if (fd < 0) {
                        snd_ctl_close(ctl);
                        SYSERR("open %s failed", filename);
index d1b3a3364ea8ae80fc22913d9a20bbc69f4e6539..7c2c4812d46600f7ddbe9ec88b813df4ebda268d 100644 (file)
@@ -23,9 +23,6 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include "seq_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 #ifndef PIC
 /* entry for static linking */
@@ -443,24 +440,12 @@ int snd_seq_hw_open(snd_seq_t **handle, const char *name, int streams, int mode)
                fmode |= O_NONBLOCK;
 
        filename = SNDRV_FILE_SEQ;
-#ifdef SUPPORT_RESMGR
-       fd = rsm_open_device(filename, fmode);
-#else
-       fd = open(filename, fmode);
-#endif
+       fd = snd_open_device(filename, fmode);
        if (fd < 0) {
-#ifdef SUPPORT_RESMGR
-               fd = open(SNDRV_FILE_ALOADSEQ, O_RDWR);
-#else
-               fd = open(SNDRV_FILE_ALOADSEQ, fmode);
-#endif
+               fd = snd_open_device(SNDRV_FILE_ALOADSEQ, fmode);
                if (fd >= 0)
                        close(fd);
-#ifdef SUPPORT_RESMGR
-               fd = rsm_open_device(filename, fmode);
-#else
-               fd = open(filename, fmode);
-#endif
+               fd = snd_open_device(filename, fmode);
                if (fd < 0) {
                        SYSERR("open %s failed", filename);
                        return -errno;
index d09c7a8f104d991cbf5d228f25606b2e2709b361..2d5a92ee53c94903a3ee141b2c6b3153e21511c7 100644 (file)
@@ -27,9 +27,6 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include "timer_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 #ifndef PIC
 /* entry for static linking */
@@ -214,11 +211,7 @@ int snd_timer_hw_open(snd_timer_t **handle, const char *name, int dev_class, int
        tmode = O_RDONLY;
        if (mode & SND_TIMER_OPEN_NONBLOCK)
                tmode |= O_NONBLOCK;    
-#ifdef SUPPORT_RESMGR
-       fd = rsm_open_device(SNDRV_FILE_TIMER, tmode);
-#else
-       fd = open(SNDRV_FILE_TIMER, tmode);
-#endif
+       fd = snd_open_device(SNDRV_FILE_TIMER, tmode);
        if (fd < 0)
                return -errno;
 #if 0
index cb0e03c8c8d5c5c6c0eb89f9c3b2f2bf736d6f05..29c86fff51920f778ac30f6b2fecc8dbb5370469 100644 (file)
@@ -26,9 +26,6 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include "timer_local.h"
-#ifdef SUPPORT_RESMGR
-#include <resmgr.h>
-#endif
 
 #ifndef PIC
 /* entry for static linking */
@@ -102,11 +99,7 @@ int snd_timer_query_hw_open(snd_timer_query_t **handle, const char *name, int mo
        tmode = O_RDONLY;
        if (mode & SND_TIMER_OPEN_NONBLOCK)
                tmode |= O_NONBLOCK;    
-#ifdef SUPPORT_RESMGR
-       fd = rsm_open_device(SNDRV_FILE_TIMER, tmode);
-#else
-       fd = open(SNDRV_FILE_TIMER, tmode);
-#endif
+       fd = snd_open_device(SNDRV_FILE_TIMER, tmode);
        if (fd < 0)
                return -errno;
        if (ioctl(fd, SNDRV_TIMER_IOCTL_PVERSION, &ver) < 0) {