#define STREAM_MANAGER_METHOD_NAME_GET_VOLUME_MAX_LEVEL "GetVolumeMaxLevel"
#define STREAM_MANAGER_METHOD_NAME_SET_VOLUME_MUTE "SetVolumeMute"
#define STREAM_MANAGER_METHOD_NAME_GET_VOLUME_MUTE "GetVolumeMute"
-#define STREAM_MANAGER_METHOD_NAME_SET_VOLUME_RATE "SetVolumeRate"
-#define STREAM_MANAGER_METHOD_NAME_GET_VOLUME_RATE "GetVolumeRate"
+#define STREAM_MANAGER_METHOD_NAME_SET_VOLUME_RATIO "SetVolumeRatio"
+#define STREAM_MANAGER_METHOD_NAME_GET_VOLUME_RATIO "GetVolumeRatio"
#define STREAM_MANAGER_METHOD_NAME_GET_CURRENT_VOLUME_TYPE "GetCurrentVolumeType" /* The type that belongs to the stream of the current max priority */
#define STREAM_MANAGER_METHOD_NAME_GET_CURRENT_MEDIA_ROUTING_PATH "GetCurrentMediaRoutingPath"
#define STREAM_MANAGER_METHOD_NAME_UPDATE_FOCUS_STATUS "UpdateFocusStatus"
METHOD_HANDLER_GET_VOLUME_MAX_LEVEL,
METHOD_HANDLER_SET_VOLUME_MUTE,
METHOD_HANDLER_GET_VOLUME_MUTE,
- METHOD_HANDLER_SET_VOLUME_RATE,
- METHOD_HANDLER_GET_VOLUME_RATE,
+ METHOD_HANDLER_SET_VOLUME_RATIO,
+ METHOD_HANDLER_GET_VOLUME_RATIO,
METHOD_HANDLER_GET_CURRENT_VOLUME_TYPE,
METHOD_HANDLER_GET_CURRENT_MEDIA_ROUTING_PATH,
METHOD_HANDLER_UPDATE_FOCUS_STATUS,
" <arg name=\"on\" direction=\"out\" type=\"u\"/>" \
" <arg name=\"ret_msg\" direction=\"out\" type=\"s\"/>" \
" </method>" \
- " <method name=\"STREAM_MANAGER_METHOD_NAME_SET_VOLUME_RATE\">" \
+ " <method name=\"STREAM_MANAGER_METHOD_NAME_SET_VOLUME_RATIO\">" \
" <arg name=\"io_direction\" direction=\"in\" type=\"s\"/>" \
" <arg name=\"idx\" direction=\"in\" type=\"u\"/>" \
- " <arg name=\"rate\" direction=\"in\" type=\"d\"/>" \
+ " <arg name=\"ratio\" direction=\"in\" type=\"d\"/>" \
" <arg name=\"ret_msg\" direction=\"out\" type=\"s\"/>" \
" </method>" \
- " <method name=\"STREAM_MANAGER_METHOD_NAME_GET_VOLUME_RATE\">" \
+ " <method name=\"STREAM_MANAGER_METHOD_NAME_GET_VOLUME_RATIO\">" \
" <arg name=\"io_direction\" direction=\"in\" type=\"s\"/>" \
" <arg name=\"idx\" direction=\"in\" type=\"u\"/>" \
- " <arg name=\"rate\" direction=\"out\" type=\"d\"/>" \
+ " <arg name=\"ratio\" direction=\"out\" type=\"d\"/>" \
" <arg name=\"ret_msg\" direction=\"out\" type=\"s\"/>" \
" </method>" \
" <method name=\"STREAM_MANAGER_METHOD_NAME_GET_CURRENT_VOLUME_TYPE\">" \
static void handle_get_volume_max_level(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_set_volume_mute(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_get_volume_mute(DBusConnection *conn, DBusMessage *msg, void *userdata);
-static void handle_set_volume_rate(DBusConnection *conn, DBusMessage *msg, void *userdata);
-static void handle_get_volume_rate(DBusConnection *conn, DBusMessage *msg, void *userdata);
+static void handle_set_volume_ratio(DBusConnection *conn, DBusMessage *msg, void *userdata);
+static void handle_get_volume_ratio(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_get_current_volume_type(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_get_current_media_routing_path(DBusConnection *conn, DBusMessage *msg, void *userdata);
static void handle_update_focus_status(DBusConnection *conn, DBusMessage *msg, void *userdata);
{ "type", "s", "in" },
{ "on", "u", "out" },
{ "ret_msg", "s", "out" } };
-static pa_dbus_arg_info set_volume_rate_args[] = { { "io_direction", "s", "in" },
+static pa_dbus_arg_info set_volume_ratio_args[] = { { "io_direction", "s", "in" },
{ "idx", "u", "in" },
- { "rate", "d", "in" },
+ { "ratio", "d", "in" },
{ "ret_msg", "s", "out" } };
-static pa_dbus_arg_info get_volume_rate_args[] = { { "io_direction", "s", "in" },
+static pa_dbus_arg_info get_volume_ratio_args[] = { { "io_direction", "s", "in" },
{ "idx", "u", "in" },
- { "rate", "d", "out" },
+ { "ratio", "d", "out" },
{ "ret_msg", "s", "out" } };
static pa_dbus_arg_info get_current_volume_type_args[] = { { "io_direction", "s", "in" },
{ "type", "s", "out" },
.arguments = get_volume_mute_args,
.n_arguments = sizeof(get_volume_mute_args) / sizeof(pa_dbus_arg_info),
.receive_cb = handle_get_volume_mute },
- [METHOD_HANDLER_SET_VOLUME_RATE] = {
- .method_name = STREAM_MANAGER_METHOD_NAME_SET_VOLUME_RATE,
- .arguments = set_volume_rate_args,
- .n_arguments = sizeof(set_volume_rate_args) / sizeof(pa_dbus_arg_info),
- .receive_cb = handle_set_volume_rate },
- [METHOD_HANDLER_GET_VOLUME_RATE] = {
- .method_name = STREAM_MANAGER_METHOD_NAME_GET_VOLUME_RATE,
- .arguments = get_volume_rate_args,
- .n_arguments = sizeof(get_volume_rate_args) / sizeof(pa_dbus_arg_info),
- .receive_cb = handle_get_volume_rate },
+ [METHOD_HANDLER_SET_VOLUME_RATIO] = {
+ .method_name = STREAM_MANAGER_METHOD_NAME_SET_VOLUME_RATIO,
+ .arguments = set_volume_ratio_args,
+ .n_arguments = sizeof(set_volume_ratio_args) / sizeof(pa_dbus_arg_info),
+ .receive_cb = handle_set_volume_ratio },
+ [METHOD_HANDLER_GET_VOLUME_RATIO] = {
+ .method_name = STREAM_MANAGER_METHOD_NAME_GET_VOLUME_RATIO,
+ .arguments = get_volume_ratio_args,
+ .n_arguments = sizeof(get_volume_ratio_args) / sizeof(pa_dbus_arg_info),
+ .receive_cb = handle_get_volume_ratio },
[METHOD_HANDLER_GET_CURRENT_VOLUME_TYPE] = {
.method_name = STREAM_MANAGER_METHOD_NAME_GET_CURRENT_VOLUME_TYPE,
.arguments = get_current_volume_type_args,
dbus_message_unref(reply);
}
-static void handle_set_volume_rate(DBusConnection *conn, DBusMessage *msg, void *userdata) {
+static void handle_set_volume_ratio(DBusConnection *conn, DBusMessage *msg, void *userdata) {
const char *direction = NULL;
uint32_t idx;
- double rate;
+ double ratio;
stream_type_t stream_type = STREAM_SINK_INPUT;
DBusMessage *reply = NULL;
pa_stream_manager *m = (pa_stream_manager*)userdata;
pa_assert_se(dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &direction,
DBUS_TYPE_UINT32, &idx,
- DBUS_TYPE_DOUBLE, &rate,
+ DBUS_TYPE_DOUBLE, &ratio,
DBUS_TYPE_INVALID));
- pa_log_info("direction[%s], idx[%u], rate[%f]", direction, idx, rate);
+ pa_log_info("direction[%s], idx[%u], ratio[%f]", direction, idx, ratio);
pa_assert_se((reply = dbus_message_new_method_return(msg)));
goto invalid_argument;
}
- /* Check the rate range (0.0 ~ 1.0) */
- if (rate < 0 || rate > 1) {
- pa_log_error("invalid range, rate[%f]", rate);
+ /* Check the ratio range (0.0 ~ 1.0) */
+ if (ratio < 0 || ratio > 1) {
+ pa_log_error("invalid range, ratio[%f]", ratio);
goto invalid_argument;
}
- if ((ret = set_volume_rate_by_idx(m, stream_type, idx, rate))) {
+ if ((ret = set_volume_ratio_by_idx(m, stream_type, idx, ratio))) {
if (ret == -2)
ret_msg = RET_MSG_ERROR_NO_STREAM;
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[ret_msg], DBUS_TYPE_INVALID));
dbus_message_unref(reply);
}
-static void handle_get_volume_rate(DBusConnection *conn, DBusMessage *msg, void *userdata) {
+static void handle_get_volume_ratio(DBusConnection *conn, DBusMessage *msg, void *userdata) {
const char *direction = NULL;
uint32_t idx = 0;
- double rate;
+ double ratio;
stream_type_t stream_type = STREAM_SINK_INPUT;
DBusMessage *reply = NULL;
pa_stream_manager *m = (pa_stream_manager*)userdata;
else if (pa_safe_streq(direction, "out"))
stream_type = STREAM_SINK_INPUT;
else {
- pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_DOUBLE, 0, DBUS_TYPE_INVALID));
+ pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_DOUBLE, &ratio, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_ERROR_INVALID_ARGUMENT], DBUS_TYPE_INVALID));
goto finish;
}
- if (get_volume_rate_by_idx(m, stream_type, idx, &rate)) {
- pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_DOUBLE, &rate, DBUS_TYPE_INVALID));
+ if (get_volume_ratio_by_idx(m, stream_type, idx, &ratio)) {
+ pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_DOUBLE, &ratio, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_ERROR_NO_STREAM], DBUS_TYPE_INVALID));
} else {
- pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_DOUBLE, &rate, DBUS_TYPE_INVALID));
+ pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_DOUBLE, &ratio, DBUS_TYPE_INVALID));
pa_assert_se(dbus_message_append_args(reply, DBUS_TYPE_STRING, &stream_manager_dbus_ret_str[RET_MSG_OK], DBUS_TYPE_INVALID));
}
return 0;
}
-int32_t set_volume_rate_by_idx(pa_stream_manager *m, stream_type_t stream_type, uint32_t idx, double rate) {
+int32_t set_volume_ratio_by_idx(pa_stream_manager *m, stream_type_t stream_type, uint32_t idx, double ratio) {
bool is_hal_volume = false;
void *s = NULL;
void *volumes = NULL;
}
if (stream_type == STREAM_SINK_INPUT)
- ((pa_sink_input*)s)->individual_volume_ratio = rate;
+ ((pa_sink_input*)s)->individual_volume_ratio = ratio;
else
- ((pa_source_output*)s)->individual_volume_ratio = rate;
+ ((pa_source_output*)s)->individual_volume_ratio = ratio;
apply_individual_ratio(m, s, volume_linear, &cv);
if (stream_type == STREAM_SINK_INPUT)
else if (stream_type == STREAM_SOURCE_OUTPUT)
pa_source_output_set_volume((pa_source_output*)s, &cv, true, true);
- pa_log_debug("stream_type[%d], idx[%u]=>volume_type[%s], level[%u], rate[%f], value[%f]",
- stream_type, idx, volume_type_str, volume_level, rate, volume_linear);
+ pa_log_debug("stream_type[%d], idx[%u]=>volume_type[%s], level[%u], ratio[%f], value[%f]",
+ stream_type, idx, volume_type_str, volume_level, ratio, volume_linear);
return 0;
}
-int32_t get_volume_rate_by_idx(pa_stream_manager *m, stream_type_t stream_type, uint32_t idx, double *rate) {
+int32_t get_volume_ratio_by_idx(pa_stream_manager *m, stream_type_t stream_type, uint32_t idx, double *ratio) {
void *s = NULL;
pa_assert(m);
- pa_assert(rate);
+ pa_assert(ratio);
if (!(s = pa_idxset_get_by_index(stream_type == STREAM_SINK_INPUT ? m->core->sink_inputs : m->core->source_outputs, idx))) {
pa_log_error("failed to get stream...[%u]", idx);
}
if (stream_type == STREAM_SINK_INPUT)
- *rate = ((pa_sink_input*)s)->individual_volume_ratio;
+ *ratio = ((pa_sink_input*)s)->individual_volume_ratio;
else
- *rate = ((pa_source_output*)s)->individual_volume_ratio;
+ *ratio = ((pa_source_output*)s)->individual_volume_ratio;
- pa_log_info("individual ratio of stream[idx:%u] is [%f]", idx, *rate);
+ pa_log_info("individual ratio of stream[idx:%u] is [%f]", idx, *ratio);
return 0;
}