summaryrefslogtreecommitdiffstats
path: root/polyp/daemon-conf.c
diff options
context:
space:
mode:
Diffstat (limited to 'polyp/daemon-conf.c')
-rw-r--r--polyp/daemon-conf.c57
1 files changed, 38 insertions, 19 deletions
diff --git a/polyp/daemon-conf.c b/polyp/daemon-conf.c
index a3185364..6dcd540d 100644
--- a/polyp/daemon-conf.c
+++ b/polyp/daemon-conf.c
@@ -110,41 +110,60 @@ void pa_daemon_conf_free(struct pa_daemon_conf *c) {
pa_xfree(c);
}
-int parse_log_target(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) {
- struct pa_daemon_conf *c = data;
- assert(filename && lvalue && rvalue && data);
-
- if (!strcmp(rvalue, "auto"))
+int pa_daemon_conf_set_log_target(struct pa_daemon_conf *c, const char *string) {
+ assert(c && string);
+
+ if (!strcmp(string, "auto"))
c->auto_log_target = 1;
- else if (!strcmp(rvalue, "syslog")) {
+ else if (!strcmp(string, "syslog")) {
c->auto_log_target = 0;
c->log_target = PA_LOG_SYSLOG;
- } else if (!strcmp(rvalue, "stderr")) {
+ } else if (!strcmp(string, "stderr")) {
c->auto_log_target = 0;
c->log_target = PA_LOG_STDERR;
- } else {
- pa_log(__FILE__": [%s:%u] Invalid log target '%s'.\n", filename, line, rvalue);
+ } else
return -1;
- }
return 0;
+
}
-int parse_resample_method(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) {
- struct pa_daemon_conf *c = data;
- assert(filename && lvalue && rvalue && data);
+int pa_daemon_conf_set_resample_method(struct pa_daemon_conf *c, const char *string) {
+ assert(c && string);
- if (!strcmp(rvalue, "sinc-best-quality"))
+ if (!strcmp(string, "sinc-best-quality"))
c->resample_method = SRC_SINC_BEST_QUALITY;
- else if (!strcmp(rvalue, "sinc-medium-quality"))
+ else if (!strcmp(string, "sinc-medium-quality"))
c->resample_method = SRC_SINC_MEDIUM_QUALITY;
- else if (!strcmp(rvalue, "sinc-fastest"))
+ else if (!strcmp(string, "sinc-fastest"))
c->resample_method = SRC_SINC_FASTEST;
- else if (!strcmp(rvalue, "zero-order-hold"))
+ else if (!strcmp(string, "zero-order-hold"))
c->resample_method = SRC_ZERO_ORDER_HOLD;
- else if (!strcmp(rvalue, "linear"))
+ else if (!strcmp(string, "linear"))
c->resample_method = SRC_LINEAR;
- else {
+ else
+ return -1;
+
+ return 0;
+}
+
+int parse_log_target(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) {
+ struct pa_daemon_conf *c = data;
+ assert(filename && lvalue && rvalue && data);
+
+ if (pa_daemon_conf_set_log_target(c, rvalue) < 0) {
+ pa_log(__FILE__": [%s:%u] Invalid log target '%s'.\n", filename, line, rvalue);
+ return -1;
+ }
+
+ return 0;
+}
+
+int parse_resample_method(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) {
+ struct pa_daemon_conf *c = data;
+ assert(filename && lvalue && rvalue && data);
+
+ if (pa_daemon_conf_set_resample_method(c, rvalue) < 0) {
pa_log(__FILE__": [%s:%u] Inavalid resample method '%s'.\n", filename, line, rvalue);
return -1;
}