本文整理汇总了C++中btd_error_invalid_args函数的典型用法代码示例。如果您正苦于以下问题:C++ btd_error_invalid_args函数的具体用法?C++ btd_error_invalid_args怎么用?C++ btd_error_invalid_args使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了btd_error_invalid_args函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dbus_message_get_sender
static DBusMessage *register_agent(DBusConnection *conn,
DBusMessage *msg, void *user_data)
{
struct agent *agent;
const char *sender, *path, *capability;
uint8_t cap;
sender = dbus_message_get_sender(msg);
agent = g_hash_table_lookup(agent_list, sender);
if (agent)
return btd_error_already_exists(msg);
if (dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
DBUS_TYPE_STRING, &capability,
DBUS_TYPE_INVALID) == FALSE)
return btd_error_invalid_args(msg);
cap = parse_io_capability(capability);
if (cap == IO_CAPABILITY_INVALID)
return btd_error_invalid_args(msg);
agent = agent_create(sender, path, cap);
if (!agent)
return btd_error_invalid_args(msg);
DBG("agent %s", agent->owner);
g_hash_table_replace(agent_list, agent->owner, agent);
return dbus_message_new_method_return(msg);
}
示例2: dbus_message_get_sender
static DBusMessage *register_player(DBusConnection *conn, DBusMessage *msg,
void *data)
{
struct media_adapter *adapter = data;
struct media_player *mp;
DBusMessageIter args;
const char *sender, *path;
int err;
sender = dbus_message_get_sender(msg);
dbus_message_iter_init(msg, &args);
dbus_message_iter_get_basic(&args, &path);
dbus_message_iter_next(&args);
if (media_adapter_find_player(adapter, sender, path) != NULL)
return btd_error_already_exists(msg);
mp = media_player_create(adapter, sender, path, &err);
if (mp == NULL) {
if (err == -EPROTONOSUPPORT)
return btd_error_not_supported(msg);
else
return btd_error_invalid_args(msg);
}
if (parse_player_properties(mp, &args) == FALSE) {
media_player_destroy(mp);
return btd_error_invalid_args(msg);
}
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}
示例3: btd_error_invalid_args
static DBusMessage *update_xml_record(DBusMessage *msg,
struct service_adapter *serv_adapter)
{
struct record_data *user_record;
sdp_record_t *sdp_record;
const char *record;
dbus_uint32_t handle;
int len;
if (dbus_message_get_args(msg, NULL,
DBUS_TYPE_UINT32, &handle,
DBUS_TYPE_STRING, &record,
DBUS_TYPE_INVALID) == FALSE)
return btd_error_invalid_args(msg);
len = (record ? strlen(record) : 0);
if (len == 0)
return btd_error_invalid_args(msg);
user_record = find_record(serv_adapter, handle,
dbus_message_get_sender(msg));
if (!user_record)
return btd_error_not_available(msg);
sdp_record = sdp_xml_parse_record(record, len);
if (!sdp_record) {
error("Parsing of XML service record failed");
return btd_error_failed(msg,
"Parsing of XML service record failed");
}
return update_record(msg, serv_adapter, handle, sdp_record);
}
示例4: btd_error_invalid_args
static DBusMessage *add_remote_data(DBusConnection *conn, DBusMessage *msg,
void *data)
{
struct btd_adapter *adapter = data;
uint8_t *hash, *randomizer;
int32_t hlen, rlen;
const char *addr;
bdaddr_t bdaddr;
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &addr,
DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, &hash, &hlen,
DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, &randomizer, &rlen,
DBUS_TYPE_INVALID))
return btd_error_invalid_args(msg);
if (hlen != 16 || rlen != 16 || bachk(addr))
return btd_error_invalid_args(msg);
str2ba(addr, &bdaddr);
if (btd_adapter_add_remote_oob_data(adapter, &bdaddr, hash, randomizer))
return btd_error_failed(msg, "Request failed");
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}
示例5: DBG
static DBusMessage *unregister_advertisement(DBusConnection *conn,
DBusMessage *msg,
void *user_data)
{
struct btd_advertising *manager = user_data;
DBusMessageIter args;
struct advertisement *ad;
struct dbus_obj_match match;
DBG("UnregisterAdvertisement");
if (!dbus_message_iter_init(msg, &args))
return btd_error_invalid_args(msg);
if (dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_OBJECT_PATH)
return btd_error_invalid_args(msg);
dbus_message_iter_get_basic(&args, &match.path);
match.owner = dbus_message_get_sender(msg);
ad = queue_find(manager->ads, match_advertisement, &match);
if (!ad)
return btd_error_does_not_exist(msg);
advertisement_remove(ad);
return dbus_message_new_method_return(msg);
}
示例6: btd_error_invalid_args
static DBusMessage *media_folder_change_folder(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct media_player *mp = data;
struct media_folder *folder = mp->scope;
struct player_callback *cb = mp->cb;
const char *path;
int err;
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_OBJECT_PATH, &path,
DBUS_TYPE_INVALID))
return btd_error_invalid_args(msg);
if (folder->msg != NULL)
return btd_error_failed(msg, strerror(EBUSY));
folder = media_player_find_folder(mp, path);
if (folder == NULL)
return btd_error_invalid_args(msg);
if (mp->scope == folder)
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
if (folder == mp->playlist || folder == mp->folder ||
folder == mp->search) {
media_player_change_scope(mp, folder);
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}
/*
* ChangePath can only navigate one level up/down so check if folder
* is direct child or parent of the current folder otherwise fail.
*/
if (!g_slist_find(mp->folder->subfolders, folder) &&
!g_slist_find(folder->subfolders, mp->folder))
return btd_error_invalid_args(msg);
if (cb->cbs->change_folder == NULL)
return btd_error_not_supported(msg);
err = cb->cbs->change_folder(mp, folder->item->name, folder->item->uid,
cb->user_data);
if (err < 0)
return btd_error_failed(msg, strerror(-err));
mp->scope->msg = dbus_message_ref(msg);
return NULL;
}
示例7: dbus_message_iter_init
static DBusMessage *media_folder_list_items(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct media_player *mp = data;
struct media_folder *folder = mp->scope;
struct player_callback *cb = mp->cb;
DBusMessageIter iter;
uint32_t start, end;
int err;
dbus_message_iter_init(msg, &iter);
if (parse_filters(mp, &iter, &start, &end) < 0)
return btd_error_invalid_args(msg);
if (cb->cbs->list_items == NULL)
return btd_error_not_supported(msg);
if (folder->msg != NULL)
return btd_error_failed(msg, strerror(EBUSY));
err = cb->cbs->list_items(mp, folder->item->name, start, end,
cb->user_data);
if (err < 0)
return btd_error_failed(msg, strerror(-err));
folder->msg = dbus_message_ref(msg);
return NULL;
}
示例8: btd_error_not_authorized
static DBusMessage *unregister_agent(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct audio_device *device = data;
struct gateway *gw = device->gateway;
const char *path;
if (!gw->agent)
goto done;
if (strcmp(gw->agent->name, dbus_message_get_sender(msg)) != 0)
return btd_error_not_authorized(msg);
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_OBJECT_PATH, &path,
DBUS_TYPE_INVALID))
return btd_error_invalid_args(msg);
if (strcmp(gw->agent->path, path) != 0)
return btd_error_does_not_exist(msg);
g_dbus_remove_watch(conn, gw->agent->watch);
agent_free(gw->agent);
gw->agent = NULL;
done:
return dbus_message_new_method_return(msg);
}
示例9: btd_error_already_exists
static DBusMessage *register_agent(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct audio_device *device = data;
struct gateway *gw = device->gateway;
struct hf_agent *agent;
const char *path, *name;
if (gw->agent)
return btd_error_already_exists(msg);
if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
DBUS_TYPE_INVALID))
return btd_error_invalid_args(msg);
name = dbus_message_get_sender(msg);
agent = g_new0(struct hf_agent, 1);
agent->name = g_strdup(name);
agent->path = g_strdup(path);
agent->watch = g_dbus_add_disconnect_watch(conn, name,
agent_exited, gw, NULL);
gw->agent = agent;
return dbus_message_new_method_return(msg);
}
示例10: controlpoint_method_reply
static void controlpoint_method_reply(struct controlpoint_req *req,
uint8_t code)
{
DBusMessage *reply;
switch (code) {
case RSP_SUCCESS:
reply = dbus_message_new_method_return(req->msg);
break;
case RSP_NOT_SUPPORTED:
reply = btd_error_not_supported(req->msg);
break;
case RSP_INVALID_PARAM:
reply = btd_error_invalid_args(req->msg);
break;
case RSP_FAILED:
reply = btd_error_failed(req->msg, "Failed");
break;
default:
reply = btd_error_failed(req->msg, "Unknown error");
break;
}
g_dbus_send_message(btd_get_dbus_connection(), reply);
dbus_message_unref(req->msg);
}
示例11: error
static DBusMessage *notify_unread_alert(DBusConnection *conn, DBusMessage *msg,
void *data)
{
uint32_t category_id = 0;
uint8_t category_id_bit;
uint8_t unread_count;
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_BYTE, &category_id,
DBUS_TYPE_BYTE, &unread_count,
DBUS_TYPE_INVALID)) {
error("Invalid arguments");
return NULL;
}
category_id_bit = 1 << category_id;
if (!(supp_unread_alerts & category_id_bit)) {
error("Unsupported catergory ID");
return btd_error_invalid_args(msg);
}
unread_alerts[category_id].category_id = category_id;
unread_alerts[category_id].unread_count = unread_count;
DBG("Updated category %d", category_id);
g_slist_foreach(alert_adapters, __notify_new_alert,
(gpointer)category_id);
return dbus_message_new_method_return(msg);
}
示例12: dbus_message_get_sender
static DBusMessage *unregister_watcher(DBusConnection *conn, DBusMessage *msg,
void *data)
{
struct heartrate_adapter *hradapter = data;
struct watcher *watcher;
const char *sender = dbus_message_get_sender(msg);
char *path;
if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_OBJECT_PATH, &path,
DBUS_TYPE_INVALID))
return btd_error_invalid_args(msg);
watcher = find_watcher(hradapter->watchers, sender, path);
if (watcher == NULL)
return btd_error_does_not_exist(msg);
hradapter->watchers = g_slist_remove(hradapter->watchers, watcher);
g_dbus_remove_watch(conn, watcher->id);
if (g_slist_length(hradapter->watchers) == 0)
g_slist_foreach(hradapter->devices, disable_measurement, 0);
DBG("heartrate watcher [%s] unregistered", path);
return dbus_message_new_method_return(msg);
}
示例13: btd_error_invalid_args
static DBusMessage *set_cumulative_wheel_rev(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct csc *csc = data;
dbus_uint32_t value;
struct controlpoint_req *req;
uint8_t att_val[5]; /* uint8 opcode + uint32 value */
if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_UINT32, &value,
DBUS_TYPE_INVALID))
return btd_error_invalid_args(msg);
if (csc->pending_req != NULL)
return btd_error_in_progress(msg);
req = g_new(struct controlpoint_req, 1);
req->csc = csc;
req->opcode = SET_CUMULATIVE_VALUE;
req->msg = dbus_message_ref(msg);
csc->pending_req = req;
att_val[0] = SET_CUMULATIVE_VALUE;
put_le32(value, att_val + 1);
gatt_write_char(csc->attrib, csc->controlpoint_val_handle, att_val,
sizeof(att_val), controlpoint_write_cb, req);
return NULL;
}
示例14: btd_error_invalid_args
static DBusMessage *unregister_server(DBusConnection *conn,
DBusMessage *msg, void *data)
{
struct network_adapter *na = data;
struct network_server *ns;
DBusMessage *reply;
const char *uuid;
if (!dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &uuid,
DBUS_TYPE_INVALID))
return btd_error_invalid_args(msg);
ns = find_server_by_uuid(na->servers, uuid);
if (!ns)
return btd_error_failed(msg, "Invalid UUID");
reply = dbus_message_new_method_return(msg);
if (!reply)
return NULL;
g_dbus_remove_watch(conn, ns->watch_id);
server_disconnect(conn, ns);
return reply;
}
示例15: btd_error_invalid_args
static DBusMessage *set_link_loss_alert(DBusConnection *conn, DBusMessage *msg,
const char *level, void *data)
{
struct monitor *monitor = data;
struct btd_device *device = monitor->device;
bdaddr_t sba, dba;
if (!level_is_valid(level))
return btd_error_invalid_args(msg);
if (g_strcmp0(monitor->linklosslevel, level) == 0)
return dbus_message_new_method_return(msg);
g_free(monitor->linklosslevel);
monitor->linklosslevel = g_strdup(level);
adapter_get_address(device_get_adapter(device), &sba);
device_get_address(device, &dba);
write_proximity_config(&sba, &dba, "LinkLossAlertLevel", level);
if (monitor->attrib)
write_alert_level(monitor);
return dbus_message_new_method_return(msg);
}