]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
_dsp_init: bring inline with trunk
authorAlec L Davis <sivad.a@paradise.net.nz>
Thu, 4 Oct 2012 04:18:44 +0000 (04:18 +0000)
committerAlec L Davis <sivad.a@paradise.net.nz>
Thu, 4 Oct 2012 04:18:44 +0000 (04:18 +0000)
preparation for clean merge of DTMF TWIST patch

No functional changes, just style.

alecdavis (license 585)
Reported by: Alec Davis
Tested by: alecdavis

related https://reviewboard.asterisk.org/r/2141
........

Merged revisions 374365 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@374370 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/dsp.c

index 9379c3c1c385f89e8a34441a0eb29e97ecff4286..a9cb9a0a8aa2f801c69d9a1de672c9601673df82 100644 (file)
@@ -1817,33 +1817,34 @@ int ast_dsp_get_tcount(struct ast_dsp *dsp)
 
 static int _dsp_init(int reload)
 {
-       struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
        struct ast_config *cfg;
+       struct ast_variable *v;
+       struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
+       int cfg_threshold;
 
-       cfg = ast_config_load2(CONFIG_FILE_NAME, "dsp", config_flags);
-       if (cfg == CONFIG_STATUS_FILEMISSING || cfg == CONFIG_STATUS_FILEINVALID) {
-               ast_verb(5, "Can't find dsp config file %s. Assuming default silencethreshold of %d.\n", CONFIG_FILE_NAME, DEFAULT_SILENCE_THRESHOLD);
-               thresholds[THRESHOLD_SILENCE] = DEFAULT_SILENCE_THRESHOLD;
+       if ((cfg = ast_config_load2(CONFIG_FILE_NAME, "dsp", config_flags)) == CONFIG_STATUS_FILEUNCHANGED) {
                return 0;
        }
 
-       if (cfg == CONFIG_STATUS_FILEUNCHANGED) {
+       thresholds[THRESHOLD_SILENCE] = DEFAULT_SILENCE_THRESHOLD;
+
+       if (cfg == CONFIG_STATUS_FILEMISSING || cfg == CONFIG_STATUS_FILEINVALID) {
                return 0;
        }
 
-       if (cfg) {
-               const char *value;
-
-               value = ast_variable_retrieve(cfg, "default", "silencethreshold");
-               if (value && sscanf(value, "%30d", &thresholds[THRESHOLD_SILENCE]) != 1) {
-                       ast_verb(5, "%s: '%s' is not a valid silencethreshold value\n", CONFIG_FILE_NAME, value);
-                       thresholds[THRESHOLD_SILENCE] = DEFAULT_SILENCE_THRESHOLD;
-               } else if (!value) {
-                       thresholds[THRESHOLD_SILENCE] = DEFAULT_SILENCE_THRESHOLD;
+       for (v = ast_variable_browse(cfg, "default"); v; v = v->next) {
+               if (!strcasecmp(v->name, "silencethreshold")) {
+                       if (sscanf(v->value, "%30d", &cfg_threshold) < 1) {
+                               ast_log(LOG_WARNING, "Unable to convert '%s' to a numeric value.\n", v->value);
+                       } else if (cfg_threshold < 0) {
+                               ast_log(LOG_WARNING, "Invalid silence threshold '%d' specified, using default\n", cfg_threshold);
+                       } else {
+                               thresholds[THRESHOLD_SILENCE] = cfg_threshold;
+                       }
                }
-
-               ast_config_destroy(cfg);
        }
+       ast_config_destroy(cfg);
+
        return 0;
 }
 
@@ -1861,4 +1862,3 @@ int ast_dsp_reload(void)
 {
        return _dsp_init(1);
 }
-