Esempio n. 1
0
File: se.c Progetto: aklein53/neard
static DBusMessage *get_properties(DBusConnection *conn,
					DBusMessage *msg, void *data)
{
	struct seel_se *se = data;
	DBusMessage *reply;
	DBusMessageIter array, dict;
	char *se_type = se_to_string(se->se_type);

	DBG("conn %p", conn);

	reply = dbus_message_new_method_return(msg);
	if (reply == NULL)
		return NULL;

	dbus_message_iter_init_append(reply, &array);

	near_dbus_dict_open(&array, &dict);

	near_dbus_dict_append_basic(&dict, "Enabled",
					DBUS_TYPE_BOOLEAN, &se->enabled);

	near_dbus_dict_append_basic(&dict, "Type",
					DBUS_TYPE_STRING, &se_type);

	near_dbus_dict_append_array(&dict, "Channels",
				DBUS_TYPE_OBJECT_PATH, append_channels, se);

	near_dbus_dict_close(&array, &dict);

	return reply;
}
Esempio n. 2
0
static void ndef_agent_push_records(struct near_ndef_agent *agent,
					struct near_ndef_record *record,
							GList *records)
{
	DBusMessageIter iter, dict;
	DBusMessage *message;
	char *path;
	uint8_t *payload;
	size_t payload_len;

	DBG("");

	if (!agent->sender || !agent->path)
		return;

	DBG("Sending NDEF to %s %s", agent->path, agent->sender);

	message = dbus_message_new_method_call(agent->sender, agent->path,
					NFC_NDEF_AGENT_INTERFACE,
					"GetNDEF");
	if (!message)
		return;

	path = __near_ndef_record_get_path(record);
	payload = __near_ndef_record_get_payload(record, &payload_len);

	dbus_message_iter_init_append(message, &iter);

	near_dbus_dict_open(&iter, &dict);
	near_dbus_dict_append_basic(&dict, "Record",
					DBUS_TYPE_STRING, &path);
	near_dbus_dict_append_fixed_array(&dict, "Payload",
				DBUS_TYPE_BYTE, &payload, payload_len);
	near_dbus_dict_append_array(&dict, "NDEF",
				DBUS_TYPE_BYTE, append_ndef, records);
	near_dbus_dict_close(&iter, &dict);

	DBG("sending...");

	dbus_message_set_no_reply(message, TRUE);

	g_dbus_send_message(connection, message);
}
Esempio n. 3
0
static void prepare_data(DBusMessage *message, struct carrier_data *data)
{
	DBusMessageIter iter;
	DBusMessageIter dict;
	char *name = NULL;

	DBG("data %p", data);

	dbus_message_iter_init_append(message, &iter);

	near_dbus_dict_open(&iter, &dict);

	if (data) {
		void *pdata = data->data;

		switch (data->type) {
		case BT_MIME_V2_1:
			name = "EIR";
			break;

		case BT_MIME_V2_0:
			name = "nokia.com:bt";
			break;

		case WIFI_WSC_MIME:
			name = "WSC";
			break;
		}

		near_dbus_dict_append_fixed_array(&dict, name, DBUS_TYPE_BYTE,
							&pdata, data->size);

		if (data->state != CPS_UNKNOWN) {
			const char *state = cps2string[data->state];

			near_dbus_dict_append_basic(&dict, "State",
						DBUS_TYPE_STRING, &state);
		}
	}

	near_dbus_dict_close(&iter, &dict);
}