diff options
Diffstat (limited to 'cras/src/server/cras_alsa_mixer_name.c')
-rw-r--r-- | cras/src/server/cras_alsa_mixer_name.c | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/cras/src/server/cras_alsa_mixer_name.c b/cras/src/server/cras_alsa_mixer_name.c deleted file mode 100644 index 45ef2c53..00000000 --- a/cras/src/server/cras_alsa_mixer_name.c +++ /dev/null @@ -1,131 +0,0 @@ -/* Copyright 2016 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. - */ - -#include <stdlib.h> -#include <string.h> -#include <syslog.h> - -#include "cras_alsa_mixer_name.h" -#include "utlist.h" - -struct mixer_name *mixer_name_add(struct mixer_name *names, const char *name, - enum CRAS_STREAM_DIRECTION dir, - mixer_name_type type) -{ - struct mixer_name *m_name; - - if (!name) - return names; - - m_name = (struct mixer_name *)calloc(1, sizeof(struct mixer_name)); - if (!m_name) - return names; - - m_name->name = strdup(name); - if (!m_name->name) { - free(m_name); - return names; - } - m_name->dir = dir; - m_name->type = type; - - DL_APPEND(names, m_name); - return names; -} - -struct mixer_name *mixer_name_add_array(struct mixer_name *names, - const char *const *name_array, - size_t name_array_size, - enum CRAS_STREAM_DIRECTION dir, - mixer_name_type type) -{ - size_t i; - for (i = 0; i < name_array_size; i++) - names = mixer_name_add(names, name_array[i], dir, type); - return names; -} - -void mixer_name_free(struct mixer_name *names) -{ - struct mixer_name *m_name; - DL_FOREACH (names, m_name) { - DL_DELETE(names, m_name); - free((void *)m_name->name); - free(m_name); - } -} - -struct mixer_name *mixer_name_find(struct mixer_name *names, const char *name, - enum CRAS_STREAM_DIRECTION dir, - mixer_name_type type) -{ - if (!name && type == MIXER_NAME_UNDEFINED) - return NULL; - - struct mixer_name *m_name; - DL_FOREACH (names, m_name) { - /* Match the direction. */ - if (dir != m_name->dir) - continue; - /* Match the type unless the type is UNDEFINED. */ - if (type != MIXER_NAME_UNDEFINED && type != m_name->type) - continue; - /* Match the name if it is non-NULL, or return the first - * item with the correct type when the name is not defined. */ - if ((type != MIXER_NAME_UNDEFINED && !name) || - (name && !strcmp(m_name->name, name))) - return m_name; - } - return NULL; -} - -static const char *mixer_name_type_str(enum CRAS_STREAM_DIRECTION dir, - mixer_name_type type) -{ - switch (dir) { - case CRAS_STREAM_OUTPUT: - switch (type) { - case MIXER_NAME_VOLUME: - return "output volume"; - case MIXER_NAME_MAIN_VOLUME: - return "main volume"; - case MIXER_NAME_UNDEFINED: - break; - } - break; - case CRAS_STREAM_INPUT: - switch (type) { - case MIXER_NAME_VOLUME: - return "input volume"; - case MIXER_NAME_MAIN_VOLUME: - return "main capture"; - case MIXER_NAME_UNDEFINED: - break; - } - break; - case CRAS_STREAM_UNDEFINED: - case CRAS_STREAM_POST_MIX_PRE_DSP: - case CRAS_NUM_DIRECTIONS: - break; - } - return "undefined"; -} - -void mixer_name_dump(struct mixer_name *names, const char *message) -{ - struct mixer_name *m_name; - - if (!names) { - syslog(LOG_DEBUG, "%s: empty", message); - return; - } - - syslog(LOG_DEBUG, "%s:", message); - DL_FOREACH (names, m_name) { - const char *type_str = - mixer_name_type_str(m_name->dir, m_name->type); - syslog(LOG_DEBUG, " %s %s", m_name->name, type_str); - } -} |