diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-11-13 09:28:43 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-11-13 09:28:43 +0100 |
commit | 1797b2c2907630b0b8d5374fb382edf40d02387c (patch) | |
tree | 4e0cf2befb7d210c6246bce7c059b35966ecc4e2 /alsactl/state.c | |
parent | bbd71560bc93c5dd0012a4764522c0dd982ff3c2 (diff) | |
download | alsa-utils-1797b2c2907630b0b8d5374fb382edf40d02387c.tar.gz |
Add -I option to alsactl
Add -I option to alsactl to take back the old restore behavior without
initialization.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'alsactl/state.c')
-rw-r--r-- | alsactl/state.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/alsactl/state.c b/alsactl/state.c index 576721a..86b64f4 100644 --- a/alsactl/state.c +++ b/alsactl/state.c @@ -1548,7 +1548,8 @@ int save_state(const char *file, const char *cardname) return 0; } -int load_state(const char *file, const char *initfile, const char *cardname) +int load_state(const char *file, const char *initfile, const char *cardname, + int do_init) { int err, finalerr = 0; snd_config_t *config; @@ -1586,6 +1587,8 @@ int load_state(const char *file, const char *initfile, const char *cardname) if (card < 0) break; first = 0; + if (!do_init) + break; sprintf(cardname1, "%i", card); err = init(initfile, cardname1); if (err < 0) { @@ -1594,7 +1597,7 @@ int load_state(const char *file, const char *initfile, const char *cardname) } initfailed(card, "restore"); } - if (!first) + if (first) finalerr = 0; /* no cards, no error code */ return finalerr; } @@ -1621,7 +1624,7 @@ int load_state(const char *file, const char *initfile, const char *cardname) } first = 0; /* do a check if controls matches state file */ - if (set_controls(card, config, 0)) { + if (do_init && set_controls(card, config, 0)) { sprintf(cardname1, "%i", card); err = init(initfile, cardname1); if (err < 0) { @@ -1644,7 +1647,7 @@ int load_state(const char *file, const char *initfile, const char *cardname) return -ENODEV; } /* do a check if controls matches state file */ - if (set_controls(cardno, config, 0)) { + if (do_init && set_controls(cardno, config, 0)) { err = init(initfile, cardname); if (err < 0) { initfailed(cardno, "init"); |