summaryrefslogtreecommitdiff
path: root/cras/src/server/cras.c
diff options
context:
space:
mode:
Diffstat (limited to 'cras/src/server/cras.c')
-rw-r--r--cras/src/server/cras.c146
1 files changed, 0 insertions, 146 deletions
diff --git a/cras/src/server/cras.c b/cras/src/server/cras.c
deleted file mode 100644
index 8d23907a..00000000
--- a/cras/src/server/cras.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#define _GNU_SOURCE /* for asprintf */
-#include <getopt.h>
-#include <signal.h>
-#include <stdio.h>
-#include <syslog.h>
-
-#include "cras_alsa_plugin_io.h"
-#include "cras_apm_list.h"
-#include "cras_config.h"
-#include "cras_iodev_list.h"
-#include "cras_server.h"
-#include "cras_shm.h"
-#include "cras_system_state.h"
-#include "cras_dsp.h"
-
-static struct option long_options[] = {
- { "dsp_config", required_argument, 0, 'd' },
- { "syslog_mask", required_argument, 0, 'l' },
- { "device_config_dir", required_argument, 0, 'c' },
- { "disable_profile", required_argument, 0, 'D' },
- { "internal_ucm_suffix", required_argument, 0, 'u' },
- { 0, 0, 0, 0 }
-};
-
-/* Ignores sigpipe, we'll notice when a read/write fails. */
-static void set_signals()
-{
- signal(SIGPIPE, SIG_IGN);
- signal(SIGCHLD, SIG_IGN);
-}
-
-/* Entry point for the server. */
-int main(int argc, char **argv)
-{
- int c, option_index;
- int log_mask = LOG_WARNING;
- const char default_dsp_config[] = CRAS_CONFIG_FILE_DIR "/dsp.ini";
- const char *dsp_config = default_dsp_config;
- const char *device_config_dir = CRAS_CONFIG_FILE_DIR;
- const char *internal_ucm_suffix = NULL;
- unsigned int profile_disable_mask = 0;
-
- set_signals();
-
- while (1) {
- c = getopt_long(argc, argv, "", long_options, &option_index);
- if (c == -1)
- break;
-
- switch (c) {
- /* To keep this code simple we ask the (technical)
- user to pass one of integer values defined in
- syslog.h - this is a development feature after
- all. While there is no formal standard for the
- integer values there is an informal standard:
- http://tools.ietf.org/html/rfc5424#page-11 */
- case 'l':
- log_mask = atoi(optarg);
- break;
-
- case 'c':
- device_config_dir = optarg;
- break;
-
- case 'd':
- dsp_config = optarg;
- break;
- /* --disable_profile option takes list of profile names separated by ',' */
- case 'D':
- while ((optarg != NULL) && (*optarg != 0)) {
- if (strncmp(optarg, "hfp", 3) == 0) {
- profile_disable_mask |=
- CRAS_SERVER_PROFILE_MASK_HFP;
- }
- if (strncmp(optarg, "hsp", 3) == 0) {
- profile_disable_mask |=
- CRAS_SERVER_PROFILE_MASK_HSP;
- }
- if (strncmp(optarg, "a2dp", 4) == 0) {
- profile_disable_mask |=
- CRAS_SERVER_PROFILE_MASK_A2DP;
- }
- optarg = strchr(optarg, ',');
- if (optarg != NULL) {
- optarg++;
- }
- }
- break;
- case 'u':
- if (*optarg != 0)
- internal_ucm_suffix = optarg;
- break;
- default:
- break;
- }
- }
-
- switch (log_mask) {
- case LOG_EMERG:
- case LOG_ALERT:
- case LOG_CRIT:
- case LOG_ERR:
- case LOG_WARNING:
- case LOG_NOTICE:
- case LOG_INFO:
- case LOG_DEBUG:
- break;
- default:
- fprintf(stderr,
- "Unsupported syslog priority value: %d; using LOG_ERR=%d\n",
- log_mask, LOG_ERR);
- log_mask = LOG_ERR;
- break;
- }
- setlogmask(LOG_UPTO(log_mask));
-
- /* Initialize system. */
- cras_server_init();
- char *shm_name;
- if (asprintf(&shm_name, "/cras-%d", getpid()) < 0)
- exit(-1);
- int rw_shm_fd;
- int ro_shm_fd;
- struct cras_server_state *exp_state =
- (struct cras_server_state *)cras_shm_setup(
- shm_name, sizeof(*exp_state), &rw_shm_fd, &ro_shm_fd);
- if (!exp_state)
- exit(-1);
- cras_system_state_init(device_config_dir, shm_name, rw_shm_fd,
- ro_shm_fd, exp_state, sizeof(*exp_state));
- free(shm_name);
- if (internal_ucm_suffix)
- cras_system_state_set_internal_ucm_suffix(internal_ucm_suffix);
- cras_dsp_init(dsp_config);
- cras_apm_list_init(device_config_dir);
- cras_iodev_list_init();
- cras_alsa_plugin_io_init(device_config_dir);
-
- /* Start the server. */
- return cras_server_run(profile_disable_mask);
-}