Exemplo n.º 1
0
static inline void ril_call_settings_submit_req(struct ril_call_settings *sd,
	GRilIoRequest* req, guint code, GRilIoChannelResponseFunc response,
							void *cb, void *data)
{
	grilio_queue_send_request_full(sd->q, req, code, response,
				ril_call_settings_cbd_free,
				ril_call_settings_cbd_new(cb, data));
}
Exemplo n.º 2
0
static void ril_radio_settings_submit_request(struct ril_radio_settings *rsd,
	GRilIoRequest* req, guint code, GRilIoChannelResponseFunc response,
							void *cb, void *data)
{
	grilio_queue_send_request_full(rsd->q, req, code, response,
				ril_radio_settings_cbd_free,
				ril_radio_settings_cbd_new(rsd, cb, data));
}
Exemplo n.º 3
0
static void ril_sms_sca_query(struct ofono_sms *sms,
			ofono_sms_sca_query_cb_t cb, void *data)
{
	struct ril_sms *sd = ril_sms_get_data(sms);

	DBG("Sending csca_query");
	grilio_queue_send_request_full(sd->q, NULL,
			RIL_REQUEST_GET_SMSC_ADDRESS, ril_sms_sca_query_cb,
			ril_sms_cbd_free, ril_sms_cbd_new(sd, cb, data));
}
Exemplo n.º 4
0
static void ril_request_delete_sms_om_sim(struct ril_sms *sd, int record)
{
	GRilIoRequest *req = grilio_request_sized_new(8);

	DBG("Deleting record: %d", record);

	grilio_request_append_int32(req, 1);        /* Array length */
	grilio_request_append_int32(req, record);
	grilio_queue_send_request_full(sd->q, req,
			RIL_REQUEST_DELETE_SMS_ON_SIM,
			ril_new_sms_on_sim_cb, NULL, NULL);
	grilio_request_unref(req);
}
Exemplo n.º 5
0
static void ril_ack_delivery(struct ril_sms *sd, gboolean error)
{
	GRilIoRequest *req = grilio_request_sized_new(12);
	const int code = (error ? 0 : 0xff);

	DBG("(%d,%d)", error, code);
	grilio_request_append_int32(req, 2);     /* Array size*/
	grilio_request_append_int32(req, error); /* Success (1)/Failure (0) */
	grilio_request_append_int32(req, code);  /* error code */

	/* ACK the incoming NEW_SMS */
	grilio_queue_send_request_full(sd->q, req,
		RIL_REQUEST_SMS_ACKNOWLEDGE, ril_ack_delivery_cb, NULL, NULL);
	grilio_request_unref(req);
}
Exemplo n.º 6
0
static void ril_devinfo_query(struct ofono_devinfo *info, guint cmd,
				ofono_devinfo_query_cb_t cb, void *data)
{
	struct ril_devinfo *di = ril_devinfo_get_data(info);

	/* See comment in ril_devinfo_remove */
	if (di->q) {
		grilio_queue_send_request_full(di->q, NULL, cmd,
				ril_devinfo_query_cb, ril_devinfo_req_free,
					ril_devinfo_req_new(cb, data));
	} else {
		struct ofono_error error;
		cb(ril_error_failure(&error), NULL, data);
	}
}
Exemplo n.º 7
0
static void ril_sms_submit(struct ofono_sms *sms, const unsigned char *pdu,
			int pdu_len, int tpdu_len, int mms,
			ofono_sms_submit_cb_t cb, void *data)
{
	struct ril_sms *sd = ril_sms_get_data(sms);
	GRilIoRequest *req = grilio_request_new();
	int smsc_len;
	char *tpdu;

	DBG("pdu_len: %d, tpdu_len: %d mms: %d", pdu_len, tpdu_len, mms);

	grilio_request_append_int32(req, 2);     /* Number of strings */

	/* SMSC address:
	 *
	 * smsc_len == 1, then zero-length SMSC was spec'd
	 * RILD expects a NULL string in this case instead
	 * of a zero-length string.
	 */
	smsc_len = pdu_len - tpdu_len;
	if (smsc_len > 1) {
		/* TODO: encode SMSC & write to parcel */
		DBG("SMSC address specified (smsc_len %d); NOT-IMPLEMENTED",
								smsc_len);
	}

	grilio_request_append_utf8(req, NULL); /* default SMSC address */

	/* TPDU:
	 *
	 * 'pdu' is a raw hexadecimal string
	 *  encode_hex() turns it into an ASCII/hex UTF8 buffer
	 *  grilio_request_append_utf8() encodes utf8 -> utf16
	 */
	tpdu = encode_hex(pdu + smsc_len, tpdu_len, 0);
	grilio_request_append_utf8(req, tpdu);

	DBG("%s", tpdu);
	grilio_queue_send_request_full(sd->q, req,
			RIL_REQUEST_SEND_SMS, ril_sms_submit_cb,
			ril_sms_cbd_free, ril_sms_cbd_new(sd, cb, data));
	grilio_request_unref(req);
	g_free(tpdu);
}
Exemplo n.º 8
0
static void ril_sms_sca_set(struct ofono_sms *sms,
			const struct ofono_phone_number *sca,
			ofono_sms_sca_set_cb_t cb, void *data)
{
	struct ril_sms *sd = ril_sms_get_data(sms);
	GRilIoRequest *req = grilio_request_new();
	char number[OFONO_MAX_PHONE_NUMBER_LENGTH + 4];

	if (sca->type == TYPE_LOCAL) {
		snprintf(number, sizeof(number), "\"%s\"", sca->number);
	} else {
		snprintf(number, sizeof(number), "\"+%s\"", sca->number);
	}

	DBG("Setting sca: %s", number);
	grilio_request_append_utf8(req, number);
	grilio_queue_send_request_full(sd->q, req,
			RIL_REQUEST_SET_SMSC_ADDRESS, ril_sms_sca_set_cb,
			ril_sms_cbd_free, ril_sms_cbd_new(sd, cb, data));
	grilio_request_unref(req);
}