Пример #1
0
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;
}
Пример #2
0
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);
}
Пример #3
0
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);
}