]> git.alsa-project.org Git - alsa-utils.git/commitdiff
alsactl: init - add -U option to disable UCM based init
authorAndrew Hlynskyi <ahlincq@gmail.com>
Fri, 2 Oct 2020 03:45:43 +0000 (06:45 +0300)
committerJaroslav Kysela <perex@perex.cz>
Tue, 6 Oct 2020 11:03:03 +0000 (13:03 +0200)
The reason is to use it with internal init extra commands like:
  alsactl -U -E CMD=info init

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
alsactl/alsactl.c
alsactl/alsactl.h
alsactl/init_parse.c

index 6a0a395c3d4f9d3aedf2067d36c55a7186652bb0..20ebac1567080dfd35160d564d7470f5c340bd4e 100644 (file)
@@ -98,6 +98,7 @@ static struct arg args[] = {
 { 'c', "sched-idle", "set the process scheduling policy to idle (SCHED_IDLE)" },
 #ifdef HAVE_ALSA_USE_CASE_H
 { 'D', "ucm-defaults", "execute also the UCM 'defaults' section" },
+{ 'U', "no-ucm", "don't init with UCM" },
 #endif
 { HEADER, NULL, "Available commands:" },
 { CARDCMD, "store", "save current driver setup for one or each soundcards" },
@@ -270,6 +271,9 @@ int main(int argc, char *argv[])
                case 'D':
                        initflags |= FLAG_UCM_DEFAULTS;
                        break;
+               case 'U':
+                       initflags |= FLAG_UCM_DISABLED;
+                       break;
                case 'r':
                        statefile = optarg;
                        break;
index 2352f4c6a8bd2e774a72efb9431048b3371a9e16..c47869570373bf4cf5924591bdcbe8b73d740116 100644 (file)
@@ -25,7 +25,8 @@ void error_handler(const char *file, int line, const char *function, int err, co
 #define dbg(args...) do { dbg_(__func__, __LINE__, ##args); }  while (0)
 #endif 
 
-#define FLAG_UCM_DEFAULTS      (1<<0)
+#define FLAG_UCM_DISABLED      (1<<0)
+#define FLAG_UCM_DEFAULTS      (1<<1)
 
 int init(const char *file, int flags, const char *cardname);
 int init_ucm(int flags, int cardno);
index 4ece0677faa73ea1a6b137758a97d23f18c82f36..ee9cc6d8f1b1b19eaed13f445014bc693a433ddd 100644 (file)
@@ -1762,9 +1762,11 @@ int init(const char *filename, int flags, const char *cardname)
                                break;
                        }
                        first = 0;
-                       err = init_ucm(flags, card);
-                       if (err == 0)
-                               continue;
+                       if (!(flags & FLAG_UCM_DISABLED)) {
+                               err = init_ucm(flags, card);
+                               if (err == 0)
+                                       continue;
+                       }
                        err = init_space(&space, card);
                        if (err == 0) {
                                space->rootdir = new_root_dir(filename);
@@ -1787,9 +1789,11 @@ int init(const char *filename, int flags, const char *cardname)
                        error("Cannot find soundcard '%s'...", cardname);
                        goto error;
                }
-               err = init_ucm(flags, card);
-               if (err == 0)
-                       return 0;
+               if (!(flags & FLAG_UCM_DISABLED)) {
+                       err = init_ucm(flags, card);
+                       if (err == 0)
+                               return 0;
+               }
                memset(&space, 0, sizeof(space));
                err = init_space(&space, card);
                if (err == 0) {