本文整理汇总了C++中snd_ctl_elem_value_alloca函数的典型用法代码示例。如果您正苦于以下问题:C++ snd_ctl_elem_value_alloca函数的具体用法?C++ snd_ctl_elem_value_alloca怎么用?C++ snd_ctl_elem_value_alloca使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了snd_ctl_elem_value_alloca函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: _phoneui_utils_sound_volume_mute_changed_cb
static int
_phoneui_utils_sound_volume_mute_changed_cb(snd_hctl_elem_t *elem, unsigned int mask)
{
snd_ctl_elem_value_t *control;
enum SoundControlType type;
int mute;
if (mask == SND_CTL_EVENT_MASK_REMOVE)
return 0;
if (mask & SND_CTL_EVENT_MASK_VALUE) {
snd_ctl_elem_value_alloca(&control);
snd_hctl_elem_read(elem, control);
type = _phoneui_utils_sound_volume_mute_element_to_type(elem);
if (type != CONTROL_END) {
mute = phoneui_utils_sound_volume_mute_get(type);
g_debug("Got alsa mute change for control type '%d', new value: %d",
type, mute);
if (_phoneui_utils_sound_volume_mute_changed_callback) {
_phoneui_utils_sound_volume_mute_changed_callback(type, mute, _phoneui_utils_sound_volume_mute_changed_userdata);
}
}
}
return 0;
}
开发者ID:shr-project,项目名称:libphone-ui,代码行数:25,代码来源:phoneui-utils-sound.c
示例2: phoneui_utils_sound_volume_mute_set
int
phoneui_utils_sound_volume_mute_set(enum SoundControlType type, int mute)
{
int err;
snd_hctl_elem_t *elem;
snd_ctl_elem_value_t *control;
elem = controls[STATE_INDEX][type].mute_element;
if (!elem) {
return -1;
}
snd_ctl_elem_value_alloca(&control);
snd_ctl_elem_value_set_boolean(control, 0, !mute);
err = snd_hctl_elem_write(elem, control);
if (err) {
g_warning("%s", snd_strerror(err));
return -1;
}
g_debug("Set control %d to %d", type, mute);
return 0;
}
开发者ID:shr-project,项目名称:libphone-ui,代码行数:25,代码来源:phoneui-utils-sound.c
示例3: hammerfall_set_input_monitor_mask
static int
hammerfall_set_input_monitor_mask (jack_hardware_t *hw, unsigned long mask)
{
hammerfall_t *h = (hammerfall_t *) hw->private_hw;
snd_ctl_elem_value_t *ctl;
snd_ctl_elem_id_t *ctl_id;
int err;
int i;
snd_ctl_elem_value_alloca (&ctl);
snd_ctl_elem_id_alloca (&ctl_id);
set_control_id (ctl_id, "Channels Thru");
snd_ctl_elem_value_set_id (ctl, ctl_id);
for (i = 0; i < 26; i++) {
snd_ctl_elem_value_set_integer (ctl, i, (mask & (1<<i)) ? 1 : 0);
}
if ((err = snd_ctl_elem_write (h->driver->ctl_handle, ctl)) != 0) {
jack_error ("ALSA/Hammerfall: cannot set input monitoring (%s)", snd_strerror (err));
return -1;
}
hw->input_monitor_mask = mask;
return 0;
}
开发者ID:Barrett17,项目名称:jack2,代码行数:27,代码来源:hammerfall.c
示例4: phoneui_utils_sound_volume_raw_get
long
phoneui_utils_sound_volume_raw_get(enum SoundControlType type)
{
int err;
long value;
unsigned int i,count;
snd_ctl_elem_value_t *control;
snd_ctl_elem_value_alloca(&control);
snd_hctl_elem_t *elem;
count = controls[STATE_INDEX][type].count;
elem = controls[STATE_INDEX][type].element;
if (!elem || !count) {
return 0;
}
err = snd_hctl_elem_read(elem, control);
if (err < 0) {
g_warning("%s", snd_strerror(err));
return -1;
}
value = 0;
/* FIXME: possible long overflow */
for (i = 0 ; i < count ; i++) {
value += snd_ctl_elem_value_get_integer(control, i);
}
value /= count;
return value;
}
开发者ID:shr-project,项目名称:libphone-ui,代码行数:33,代码来源:phoneui-utils-sound.c
示例5: phoneui_utils_sound_volume_raw_set
int
phoneui_utils_sound_volume_raw_set(enum SoundControlType type, long value)
{
int err;
unsigned int i, count;
snd_hctl_elem_t *elem;
snd_ctl_elem_value_t *control;
elem = controls[STATE_INDEX][type].element;
if (!elem) {
return -1;
}
snd_ctl_elem_value_alloca(&control);
count = controls[STATE_INDEX][type].count;
for (i = 0 ; i < count ; i++) {
snd_ctl_elem_value_set_integer(control, i, value);
}
err = snd_hctl_elem_write(elem, control);
if (err) {
g_warning("%s", snd_strerror(err));
return -1;
}
/* FIXME put it somewhere else, this is not the correct place! */
phoneui_utils_sound_volume_save(type);
return 0;
}
开发者ID:shr-project,项目名称:libphone-ui,代码行数:32,代码来源:phoneui-utils-sound.c
示例6: patchbay_init
void patchbay_init(void)
{
int i;
int nb_active_channels;
snd_ctl_elem_value_t *val;
snd_ctl_elem_value_alloca(&val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, ANALOG_PLAYBACK_ROUTE_NAME);
memset (stream_active, 0, (MAX_OUTPUT_CHANNELS + MAX_SPDIF_CHANNELS) * sizeof(int));
nb_active_channels = 0;
for (i = 0; i < output_channels; i++) {
snd_ctl_elem_value_set_numid(val, 0);
snd_ctl_elem_value_set_index(val, i);
if (snd_ctl_elem_read(ctl, val) < 0)
continue;
stream_active[i] = 1;
nb_active_channels++;
}
output_channels = nb_active_channels;
snd_ctl_elem_value_set_name(val, SPDIF_PLAYBACK_ROUTE_NAME);
nb_active_channels = 0;
for (i = 0; i < spdif_channels; i++) {
snd_ctl_elem_value_set_numid(val, 0);
snd_ctl_elem_value_set_index(val, i);
if (snd_ctl_elem_read(ctl, val) < 0)
continue;
stream_active[i + MAX_OUTPUT_CHANNELS] = 1;
nb_active_channels++;
}
spdif_channels = nb_active_channels;
}
开发者ID:rocketsquawk,项目名称:mudita24,代码行数:33,代码来源:patchbay.c
示例7: hammerfall_change_sample_clock
static int
hammerfall_change_sample_clock (jack_hardware_t *hw, SampleClockMode mode)
{
hammerfall_t *h = (hammerfall_t *) hw->private_hw;
snd_ctl_elem_value_t *ctl;
snd_ctl_elem_id_t *ctl_id;
int err;
snd_ctl_elem_value_alloca (&ctl);
snd_ctl_elem_id_alloca (&ctl_id);
set_control_id (ctl_id, "Sync Mode");
snd_ctl_elem_value_set_id (ctl, ctl_id);
switch (mode) {
case AutoSync:
snd_ctl_elem_value_set_enumerated (ctl, 0, 0);
break;
case ClockMaster:
snd_ctl_elem_value_set_enumerated (ctl, 0, 1);
break;
case WordClock:
snd_ctl_elem_value_set_enumerated (ctl, 0, 2);
break;
}
if ((err = snd_ctl_elem_write (h->driver->ctl_handle, ctl)) < 0) {
jack_error ("ALSA-Hammerfall: cannot set clock mode");
}
return 0;
}
开发者ID:Barrett17,项目名称:jack2,代码行数:31,代码来源:hammerfall.c
示例8: set_routes
static void set_routes(int stream, int idx)
{
int err;
unsigned int out;
snd_ctl_elem_value_t *val;
stream--;
if (stream < 0 || stream > 9) {
g_print("set_routes (1)\n");
return;
}
if (! stream_active[stream])
return;
out = 0;
if (idx == 1)
out = MAX_INPUT_CHANNELS + MAX_SPDIF_CHANNELS + 1;
else if (idx == 2 || idx == 3) /* S/PDIF left & right */
out = idx + 7; /* 9-10 */
else if (idx >= 4) /* analog */
out = idx - 3; /* 1-8 */
snd_ctl_elem_value_alloca(&val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
if (stream >= MAX_OUTPUT_CHANNELS) {
snd_ctl_elem_value_set_name(val, SPDIF_PLAYBACK_ROUTE_NAME);
snd_ctl_elem_value_set_index(val, stream - MAX_OUTPUT_CHANNELS);
} else {
snd_ctl_elem_value_set_name(val, ANALOG_PLAYBACK_ROUTE_NAME);
snd_ctl_elem_value_set_index(val, stream);
}
snd_ctl_elem_value_set_enumerated(val, 0, out);
if ((err = snd_ctl_elem_write(ctl, val)) < 0)
g_print("Multi track route write error: %s\n", snd_strerror(err));
}
开发者ID:rocketsquawk,项目名称:mudita24,代码行数:35,代码来源:patchbay.c
示例9: get_toggle_index
static int get_toggle_index(int stream)
{
int err, out;
snd_ctl_elem_value_t *val;
stream--;
if (stream < 0 || stream > 9) {
g_print("get_toggle_index (1)\n");
return 0;
}
snd_ctl_elem_value_alloca(&val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
if (stream >= MAX_OUTPUT_CHANNELS) {
snd_ctl_elem_value_set_name(val, SPDIF_PLAYBACK_ROUTE_NAME);
snd_ctl_elem_value_set_index(val, stream - MAX_OUTPUT_CHANNELS);
} else {
snd_ctl_elem_value_set_name(val, ANALOG_PLAYBACK_ROUTE_NAME);
snd_ctl_elem_value_set_index(val, stream);
}
if ((err = snd_ctl_elem_read(ctl, val)) < 0)
return 0;
out = snd_ctl_elem_value_get_enumerated(val, 0);
if (out >= MAX_INPUT_CHANNELS + MAX_SPDIF_CHANNELS + 1) {
if (stream >= MAX_PCM_OUTPUT_CHANNELS || stream < MAX_SPDIF_CHANNELS)
return 1; /* digital mixer */
} else if (out >= MAX_INPUT_CHANNELS + 1)
return out - (MAX_INPUT_CHANNELS + 1) + 2; /* spdif left (=2) / right (=3) */
else if (out >= 1)
return out + spdif_channels + 1; /* analog (4-) */
return 0; /* pcm */
}
开发者ID:rocketsquawk,项目名称:mudita24,代码行数:32,代码来源:patchbay.c
示例10: ipga_volume_update
void ipga_volume_update(int idx)
{
snd_ctl_elem_value_t *val;
int err, ipga_vol;
snd_ctl_elem_value_alloca(&val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, IPGA_VOLUME_NAME);
snd_ctl_elem_value_set_index(val, idx);
if ((err = snd_ctl_elem_read(ctl, val)) < 0) {
g_print("Unable to read ipga volume: %s\n", snd_strerror(err));
return;
}
gtk_adjustment_set_value(GTK_ADJUSTMENT(av_ipga_volume_adj[idx]),
-(ipga_vol = snd_ctl_elem_value_get_integer(val, 0)));
snd_ctl_elem_value_set_name(val, ADC_VOLUME_NAME);
snd_ctl_elem_value_set_index(val, idx);
if ((err = snd_ctl_elem_read(ctl, val)) < 0) {
g_print("Unable to read adc volume: %s\n", snd_strerror(err));
return;
}
// set ADC volume to max if IPGA volume greater 0
if (ipga_vol)
gtk_adjustment_set_value(GTK_ADJUSTMENT(av_adc_volume_adj[idx]),
-adc_max);
}
开发者ID:Distrotech,项目名称:alsa-tools,代码行数:25,代码来源:volume.c
示例11: set_enum_item_ops
static int set_enum_item_ops(snd_mixer_elem_t *elem,
snd_mixer_selem_channel_id_t channel,
unsigned int item)
{
selem_none_t *s = snd_mixer_elem_get_private(elem);
snd_ctl_elem_value_t *ctl;
snd_hctl_elem_t *helem;
int err;
int type;
if ((unsigned int) channel >= s->str[0].channels) {
return -EINVAL;
}
type = CTL_GLOBAL_ENUM;
helem = s->ctls[type].elem;
if (!helem) {
type = CTL_PLAYBACK_ENUM;
helem = s->ctls[type].elem;
}
if (!helem) {
type = CTL_CAPTURE_ENUM;
helem = s->ctls[type].elem;
}
assert(helem);
if (item >= (unsigned int)s->ctls[type].max) {
return -EINVAL;
}
snd_ctl_elem_value_alloca(&ctl);
err = snd_hctl_elem_read(helem, ctl);
if (err < 0) {
return err;
}
snd_ctl_elem_value_set_enumerated(ctl, channel, item);
return snd_hctl_elem_write(helem, ctl);
}
开发者ID:KeTao,项目名称:alsa-lib,代码行数:35,代码来源:simple_none.c
示例12: elem_read_enum
static int elem_read_enum(selem_none_t *s)
{
snd_ctl_elem_value_t *ctl;
unsigned int idx;
int err;
int type;
selem_ctl_t *c;
type = CTL_GLOBAL_ENUM;
if ( (s->selem.caps & (SM_CAP_CENUM | SM_CAP_PENUM)) == (SM_CAP_CENUM | SM_CAP_PENUM) )
type = CTL_GLOBAL_ENUM;
else if (s->selem.caps & SM_CAP_PENUM)
type = CTL_PLAYBACK_ENUM;
else if (s->selem.caps & SM_CAP_CENUM)
type = CTL_CAPTURE_ENUM;
c = &s->ctls[type];
snd_ctl_elem_value_alloca(&ctl);
if ((err = snd_hctl_elem_read(c->elem, ctl)) < 0)
return err;
for (idx = 0; idx < s->str[0].channels; idx++) {
unsigned int idx1 = idx;
if (idx >= c->values)
idx1 = 0;
s->str[0].vol[idx] = snd_ctl_elem_value_get_enumerated(ctl, idx1);
}
return 0;
}
开发者ID:KeTao,项目名称:alsa-lib,代码行数:26,代码来源:simple_none.c
示例13: audio_set_default_levels
void audio_set_default_levels() {
int err;
snd_ctl_t *ctl;
snd_ctl_elem_value_t *val;
snd_ctl_elem_value_alloca(&val);
if (snd_ctl_open(&ctl, ALSA_DEVICE, 0)) {
fprintf(stderr, "can't open audio device");
return;
}
/* unmute microphone */
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, "Mic Capture Switch");
snd_ctl_elem_value_set_integer(val, 0, 1);
err = snd_ctl_elem_write(ctl, val);
if (err)
fprintf(stderr, "can't unmute microphone: %s\n", snd_strerror(err));
/* unmute speaker */
snd_ctl_elem_value_clear(val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, "Speaker Playback Switch");
snd_ctl_elem_value_set_integer(val, 0, 1);
err = snd_ctl_elem_write(ctl, val);
if (err)
fprintf(stderr, "can't unmute speaker: %s\n", snd_strerror(err));
/* set mic volume */
snd_ctl_elem_value_clear(val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, "Mic Capture Volume");
snd_ctl_elem_value_set_integer(val, 0, DEFAULT_MIC_VOL);
err = snd_ctl_elem_write(ctl, val);
if (err)
fprintf(stderr, "can't set microphone volume: %s\n", snd_strerror(err));
/* set speaker volume */
snd_ctl_elem_value_clear(val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, "Speaker Playback Volume");
snd_ctl_elem_value_set_integer(val, 0, DEFAULT_SPKR_VOL);
snd_ctl_elem_value_set_integer(val, 1, DEFAULT_SPKR_VOL);
err = snd_ctl_elem_write(ctl, val);
if (err)
fprintf(stderr, "can't set speaker volume: %s\n", snd_strerror(err));
/* set capture source */
snd_ctl_elem_value_clear(val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, "PCM Capture Source");
snd_ctl_elem_value_set_integer(val, 0, 0);
err = snd_ctl_elem_write(ctl, val);
if (err)
fprintf(stderr, "can't set capture source: %s\n", snd_strerror(err));
snd_ctl_close(ctl);
}
开发者ID:sobkas,项目名称:usbrevue,代码行数:59,代码来源:audio.c
示例14: snd_ctl_elem_id_alloca
bool CAESinkALSA::GetELD(snd_hctl_t *hctl, int device, CAEDeviceInfo& info, bool& badHDMI)
{
badHDMI = false;
snd_ctl_elem_id_t *id;
snd_ctl_elem_info_t *einfo;
snd_ctl_elem_value_t *control;
snd_hctl_elem_t *elem;
snd_ctl_elem_id_alloca(&id);
memset(id, 0, snd_ctl_elem_id_sizeof());
snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM);
snd_ctl_elem_id_set_name (id, "ELD" );
snd_ctl_elem_id_set_device (id, device);
elem = snd_hctl_find_elem(hctl, id);
if (!elem)
return false;
snd_ctl_elem_info_alloca(&einfo);
memset(einfo, 0, snd_ctl_elem_info_sizeof());
if (snd_hctl_elem_info(elem, einfo) < 0)
return false;
if (!snd_ctl_elem_info_is_readable(einfo))
return false;
if (snd_ctl_elem_info_get_type(einfo) != SND_CTL_ELEM_TYPE_BYTES)
return false;
snd_ctl_elem_value_alloca(&control);
memset(control, 0, snd_ctl_elem_value_sizeof());
if (snd_hctl_elem_read(elem, control) < 0)
return false;
int dataLength = snd_ctl_elem_info_get_count(einfo);
/* if there is no ELD data, then its a bad HDMI device, either nothing attached OR an invalid nVidia HDMI device
* OR the driver doesn't properly support ELD (notably ATI/AMD, 2012-05) */
if (!dataLength)
badHDMI = true;
else
CAEELDParser::Parse(
(const uint8_t*)snd_ctl_elem_value_get_bytes(control),
dataLength,
info
);
info.m_deviceType = AE_DEVTYPE_HDMI;
return true;
}
开发者ID:CharlieMarshall,项目名称:xbmc,代码行数:52,代码来源:AESinkALSA.cpp
示例15: get_gain
int get_gain(int idx, int src, int dst)
{
int err;
int val = HDSPMM_ERROR_NO_CARD;
snd_ctl_elem_id_t *id;
snd_ctl_elem_value_t *ctl;
snd_ctl_t *handle;
if(idx >= HDSPMM_MAX_CARDS || idx < 0)
return HDSPMM_ERROR_WRONG_IDX;
snd_ctl_elem_value_alloca(&ctl);
snd_ctl_elem_id_alloca(&id);
snd_ctl_elem_id_set_name(id, "Mixer");
snd_ctl_elem_id_set_numid(id, 0);
snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_HWDEP);
snd_ctl_elem_id_set_device(id, 0);
snd_ctl_elem_id_set_subdevice(id, 0);
snd_ctl_elem_id_set_index(id, 0);
snd_ctl_elem_value_set_id(ctl, id);
if ((err = snd_ctl_open(&handle, card_name[cardid], SND_CTL_NONBLOCK)) < 0) {
#ifndef QUIET
fprintf(stderr, "Alsa error: %s\n", snd_strerror(err));
#endif
return HDSPMM_ERROR_ALSA_OPEN;
}
snd_ctl_elem_value_set_integer(ctl, 0, src);
snd_ctl_elem_value_set_integer(ctl, 1, dst);
if ((err = snd_ctl_elem_read(handle, ctl)) < 0) {
#ifndef QUIET
fprintf(stderr, "Alsa error: %s\n", snd_strerror(err));
#endif
return HDSPMM_ERROR_ALSA_READ;
}
val = snd_ctl_elem_value_get_integer(ctl, 2);
snd_ctl_close(handle);
return val;
SETFLOAT(x->x_at+1, delta);
SETFLOAT(x->x_at+2, phi);
outlet_list(x->x_out_para, &s_list, 3, x->x_at);
outlet_anything(x->x_obj.ob_outlet, s, x->x_size2d+1, x->x_at);
}
开发者ID:IcaroL2ORK,项目名称:pd,代码行数:50,代码来源:hdspm_mixer.c
示例16: elem_write_switch_constant
static int elem_write_switch_constant(selem_none_t *s, selem_ctl_type_t type, int val)
{
snd_ctl_elem_value_t *ctl;
unsigned int idx;
int err;
selem_ctl_t *c = &s->ctls[type];
snd_ctl_elem_value_alloca(&ctl);
if ((err = snd_hctl_elem_read(c->elem, ctl)) < 0)
return err;
for (idx = 0; idx < c->values; idx++)
snd_ctl_elem_value_set_integer(ctl, idx, !!val);
if ((err = snd_hctl_elem_write(c->elem, ctl)) < 0)
return err;
return 0;
}
开发者ID:KeTao,项目名称:alsa-lib,代码行数:15,代码来源:simple_none.c
示例17: elem_write_switch
static int elem_write_switch(selem_none_t *s, int dir, selem_ctl_type_t type)
{
snd_ctl_elem_value_t *ctl;
unsigned int idx;
int err;
selem_ctl_t *c = &s->ctls[type];
snd_ctl_elem_value_alloca(&ctl);
if ((err = snd_hctl_elem_read(c->elem, ctl)) < 0)
return err;
for (idx = 0; idx < c->values; idx++)
snd_ctl_elem_value_set_integer(ctl, idx, !!(s->str[dir].sw & (1 << idx)));
if ((err = snd_hctl_elem_write(c->elem, ctl)) < 0)
return err;
return 0;
}
开发者ID:KeTao,项目名称:alsa-lib,代码行数:15,代码来源:simple_none.c
示例18: elem_write_volume
static int elem_write_volume(selem_none_t *s, int dir, selem_ctl_type_t type)
{
snd_ctl_elem_value_t *ctl;
unsigned int idx;
int err;
selem_ctl_t *c = &s->ctls[type];
snd_ctl_elem_value_alloca(&ctl);
if ((err = snd_hctl_elem_read(c->elem, ctl)) < 0)
return err;
for (idx = 0; idx < c->values; idx++)
snd_ctl_elem_value_set_integer(ctl, idx, from_user(s, dir, c, s->str[dir].vol[idx]));
if ((err = snd_hctl_elem_write(c->elem, ctl)) < 0)
return err;
return 0;
}
开发者ID:KeTao,项目名称:alsa-lib,代码行数:15,代码来源:simple_none.c
示例19: dac_volume_update
void dac_volume_update(int idx)
{
snd_ctl_elem_value_t *val;
int err;
snd_ctl_elem_value_alloca(&val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, DAC_VOLUME_NAME);
snd_ctl_elem_value_set_index(val, idx);
if ((err = snd_ctl_elem_read(ctl, val)) < 0) {
g_print("Unable to read dac volume: %s\n", snd_strerror(err));
return;
}
gtk_adjustment_set_value(GTK_ADJUSTMENT(av_dac_volume_adj[idx]),
-snd_ctl_elem_value_get_integer(val, 0));
}
开发者ID:Distrotech,项目名称:alsa-tools,代码行数:15,代码来源:volume.c
示例20: adc_sense_toggled
void adc_sense_toggled(GtkWidget *togglebutton, gpointer data)
{
int idx = (long)data >> 8;
int state = (long)data & 0xff;
snd_ctl_elem_value_t *val;
int err;
snd_ctl_elem_value_alloca(&val);
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_MIXER);
snd_ctl_elem_value_set_name(val, ADC_SENSE_NAME);
snd_ctl_elem_value_set_index(val, idx);
snd_ctl_elem_value_set_enumerated(val, 0, state);
if ((err = snd_ctl_elem_write(ctl, val)) < 0)
g_print("Unable to write adc sense: %s\n", snd_strerror(err));
}
开发者ID:Distrotech,项目名称:alsa-tools,代码行数:15,代码来源:volume.c
注:本文中的snd_ctl_elem_value_alloca函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论