static DBusHandlerResult handle_set_input_node_gain( DBusConnection *conn, DBusMessage *message, void *arg) { dbus_int32_t new_gain; cras_node_id_t id; DBusError dbus_error; dbus_error_init(&dbus_error); if (!dbus_message_get_args(message, &dbus_error, DBUS_TYPE_UINT64, &id, DBUS_TYPE_INT32, &new_gain, DBUS_TYPE_INVALID)) { syslog(LOG_WARNING, "Bad method received: %s", dbus_error.message); dbus_error_free(&dbus_error); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } cras_iodev_list_set_node_attr(id, IONODE_ATTR_CAPTURE_GAIN, new_gain); send_empty_reply(conn, message); return DBUS_HANDLER_RESULT_HANDLED; }
static DBusHandlerResult handle_swap_left_right( DBusConnection *conn, DBusMessage *message, void *arg) { cras_node_id_t id; dbus_bool_t swap; DBusError dbus_error; dbus_error_init(&dbus_error); if (!dbus_message_get_args(message, &dbus_error, DBUS_TYPE_UINT64, &id, DBUS_TYPE_BOOLEAN, &swap, DBUS_TYPE_INVALID)) { syslog(LOG_WARNING, "Bad method received: %s", dbus_error.message); dbus_error_free(&dbus_error); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } cras_iodev_list_set_node_attr(id, IONODE_ATTR_SWAP_LEFT_RIGHT, swap); send_empty_reply(conn, message); return DBUS_HANDLER_RESULT_HANDLED; }
static DBusHandlerResult handle_set_suspend_audio( DBusConnection *conn, DBusMessage *message, void *arg) { int rc; dbus_bool_t suspend; rc = get_single_arg(message, DBUS_TYPE_BOOLEAN, &suspend); if (rc) return rc; cras_system_set_suspended(suspend); send_empty_reply(conn, message); return DBUS_HANDLER_RESULT_HANDLED; }
static DBusHandlerResult handle_set_input_mute( DBusConnection *conn, DBusMessage *message, void *arg) { int rc; dbus_bool_t new_mute; rc = get_single_arg(message, DBUS_TYPE_BOOLEAN, &new_mute); if (rc) return rc; cras_system_set_capture_mute(new_mute); send_empty_reply(conn, message); return DBUS_HANDLER_RESULT_HANDLED; }
static DBusHandlerResult handle_set_input_gain( DBusConnection *conn, DBusMessage *message, void *arg) { int rc; dbus_int32_t new_gain; rc = get_single_arg(message, DBUS_TYPE_INT32, &new_gain); if (rc) return rc; cras_system_set_capture_gain(new_gain); send_empty_reply(conn, message); return DBUS_HANDLER_RESULT_HANDLED; }
static DBusHandlerResult handle_rm_active_node(DBusConnection *conn, DBusMessage *message, void *arg, enum CRAS_STREAM_DIRECTION direction) { int rc; cras_node_id_t id; rc = get_single_arg(message, DBUS_TYPE_UINT64, &id); if (rc) return rc; cras_iodev_list_rm_active_node(direction, id); send_empty_reply(conn, message); return DBUS_HANDLER_RESULT_HANDLED; }
static DBusHandlerResult handle_set_global_output_channel_remix( DBusConnection *conn, DBusMessage *message, void *arg) { dbus_int32_t num_channels; double *coeff_array; dbus_int32_t count; DBusError dbus_error; float *coefficient; int i; dbus_error_init(&dbus_error); if (!dbus_message_get_args(message, &dbus_error, DBUS_TYPE_INT32, &num_channels, DBUS_TYPE_ARRAY, DBUS_TYPE_DOUBLE, &coeff_array, &count, DBUS_TYPE_INVALID)) { syslog(LOG_WARNING, "Set global output channel remix error: %s", dbus_error.message); dbus_error_free(&dbus_error); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } coefficient = (float *)calloc(count, sizeof(*coefficient)); if (!coefficient) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; for (i = 0; i < count; i++) coefficient[i] = coeff_array[i]; audio_thread_config_global_remix( cras_iodev_list_get_audio_thread(), num_channels, coefficient); send_empty_reply(conn, message); free(coefficient); return DBUS_HANDLER_RESULT_HANDLED; }
void handle_secm_list_cookies_reply(void *pool, int fd, sec_mod_st *sec) { SecmListCookiesReplyMsg msg = SECM_LIST_COOKIES_REPLY_MSG__INIT; struct htable *db = sec->client_db; client_entry_st *t; struct htable_iter iter; CookieIntMsg *cookies; int ret; time_t now = time(0); if (db == NULL) { send_empty_reply(pool, fd, sec); return; } seclog(sec, LOG_DEBUG, "sending list cookies reply to main"); msg.cookies = talloc_size(pool, sizeof(CookieIntMsg*)*db->elems); if (msg.cookies == NULL) { send_empty_reply(pool, fd, sec); return; } cookies = talloc_size(pool, sizeof(CookieIntMsg)*db->elems); if (cookies == NULL) { send_empty_reply(pool, fd, sec); return; } t = htable_first(db, &iter); while (t != NULL) { if IS_CLIENT_ENTRY_EXPIRED(sec, t, now) goto cont; if (msg.n_cookies >= db->elems) break; cookie_int_msg__init(&cookies[msg.n_cookies]); cookies[msg.n_cookies].safe_id.data = (void*)t->acct_info.safe_id; cookies[msg.n_cookies].safe_id.len = sizeof(t->acct_info.safe_id); cookies[msg.n_cookies].session_is_open = t->session_is_open; cookies[msg.n_cookies].tls_auth_ok = t->tls_auth_ok; if (t->created > 0) cookies[msg.n_cookies].created = t->created; else cookies[msg.n_cookies].created = 0; /* a session which is in use, does not expire */ if (t->exptime > 0 && t->in_use == 0) cookies[msg.n_cookies].expires = t->exptime; else cookies[msg.n_cookies].expires = 0; cookies[msg.n_cookies].username = t->acct_info.username; cookies[msg.n_cookies].groupname = t->acct_info.groupname; cookies[msg.n_cookies].user_agent = t->acct_info.user_agent; cookies[msg.n_cookies].remote_ip = t->acct_info.remote_ip; cookies[msg.n_cookies].status = t->status; cookies[msg.n_cookies].in_use = t->in_use; cookies[msg.n_cookies].vhost = VHOSTNAME(t->vhost); msg.cookies[msg.n_cookies] = &cookies[msg.n_cookies]; msg.n_cookies++; cont: t = htable_next(db, &iter); } ret = send_msg(pool, fd, CMD_SECM_LIST_COOKIES_REPLY, &msg, (pack_size_func) secm_list_cookies_reply_msg__get_packed_size, (pack_func) secm_list_cookies_reply_msg__pack); if (ret < 0) { seclog(sec, LOG_ERR, "Error sending show cookies reply to main"); } talloc_free(msg.cookies); talloc_free(cookies); }