static DBusHandlerResult handle_get_volume_state( DBusConnection *conn, DBusMessage *message, void *arg) { DBusMessage *reply; dbus_uint32_t serial = 0; dbus_int32_t volume; dbus_bool_t system_muted; dbus_bool_t user_muted; dbus_int32_t capture_gain; dbus_bool_t capture_muted; reply = dbus_message_new_method_return(message); volume = cras_system_get_volume(); system_muted = cras_system_get_system_mute(); user_muted = cras_system_get_user_mute(); capture_gain = cras_system_get_capture_gain(); capture_muted = cras_system_get_capture_mute(); dbus_message_append_args(reply, DBUS_TYPE_INT32, &volume, DBUS_TYPE_BOOLEAN, &system_muted, DBUS_TYPE_INT32, &capture_gain, DBUS_TYPE_BOOLEAN, &capture_muted, DBUS_TYPE_BOOLEAN, &user_muted, DBUS_TYPE_INVALID); dbus_connection_send(conn, reply, &serial); dbus_message_unref(reply); return DBUS_HANDLER_RESULT_HANDLED; }
static void set_hfp_volume(struct cras_iodev *iodev) { size_t volume; struct hfp_io *hfpio = (struct hfp_io *)iodev; volume = cras_system_get_volume(); if (iodev->active_node) volume = cras_iodev_adjust_node_volume(iodev->active_node, volume); hfp_event_speaker_gain(hfpio->slc, volume); }
static void signal_output_volume(void *context, int32_t volume) { struct cras_dbus_control *control = (struct cras_dbus_control *)context; dbus_uint32_t serial = 0; DBusMessage *msg; msg = create_dbus_message("OutputVolumeChanged"); if (!msg) return; volume = cras_system_get_volume(); dbus_message_append_args(msg, DBUS_TYPE_INT32, &volume, DBUS_TYPE_INVALID); dbus_connection_send(control->conn, msg, &serial); dbus_message_unref(msg); }