diff options
author | Simon Busch <morphis@gravedo.de> | 2011-10-27 18:30:50 +0200 |
---|---|---|
committer | Simon Busch <morphis@gravedo.de> | 2011-10-27 18:30:50 +0200 |
commit | a38db5807753c279eba7480c0e63e0b6357fef34 (patch) | |
tree | 5c1e2ac2d647d0fa6be74e53522facb629ab883d | |
parent | cb1d56371f28f69019051d9dd81624b91b52e85d (diff) | |
download | hardware_replicant_libsamsung-ipc-a38db5807753c279eba7480c0e63e0b6357fef34.tar.gz hardware_replicant_libsamsung-ipc-a38db5807753c279eba7480c0e63e0b6357fef34.tar.bz2 hardware_replicant_libsamsung-ipc-a38db5807753c279eba7480c0e63e0b6357fef34.zip |
Add setup method for call outgoing message and various cleanups for call messages
Signed-off-by: Simon Busch <morphis@gravedo.de>
-rw-r--r-- | include/call.h | 84 | ||||
-rw-r--r-- | samsung-ipc/Makefile.am | 1 | ||||
-rw-r--r-- | samsung-ipc/call.c | 38 | ||||
-rw-r--r-- | vapi/samsung-ipc-1.0.vapi | 4 |
4 files changed, 88 insertions, 39 deletions
diff --git a/include/call.h b/include/call.h index 996f563..d499371 100644 --- a/include/call.h +++ b/include/call.h @@ -22,64 +22,72 @@ #define __CALL_H__ /* Message types */ -#define IPC_CALL_OUTGOING 0x0201 -#define IPC_CALL_INCOMING 0x0202 -#define IPC_CALL_RELEASE 0x0203 -#define IPC_CALL_ANSWER 0x0204 -#define IPC_CALL_STATUS 0x0205 -#define IPC_CALL_LIST 0x0206 -#define IPC_CALL_BURST_DTMF 0x0207 -#define IPC_CALL_CONT_DTMF 0x0208 -#define IPC_CALL_WAITING 0x0209 -#define IPC_CALL_LINE_ID 0x020A +#define IPC_CALL_OUTGOING 0x0201 +#define IPC_CALL_INCOMING 0x0202 +#define IPC_CALL_RELEASE 0x0203 +#define IPC_CALL_ANSWER 0x0204 +#define IPC_CALL_STATUS 0x0205 +#define IPC_CALL_LIST 0x0206 +#define IPC_CALL_BURST_DTMF 0x0207 +#define IPC_CALL_CONT_DTMF 0x0208 +#define IPC_CALL_WAITING 0x0209 +#define IPC_CALL_LINE_ID 0x020A /* Enum values */ -#define IPC_CALL_TYPE_VOICE 0x01 -#define IPC_CALL_TYPE_DATA 0x03 +#define IPC_CALL_TYPE_VOICE 0x01 +#define IPC_CALL_TYPE_DATA 0x03 -#define IPC_CALL_IDENTITY_DEFAULT 0x00 -#define IPC_CALL_IDENTITY_HIDE 0x01 -#define IPC_CALL_IDENTITY_SHOW 0x02 +#define IPC_CALL_IDENTITY_DEFAULT 0x00 +#define IPC_CALL_IDENTITY_HIDE 0x01 +#define IPC_CALL_IDENTITY_SHOW 0x02 -#define IPC_CALL_PREFIX_NONE 0x00 -#define IPC_CALL_PREFIX_INTL 0x11 +#define IPC_CALL_PREFIX_NONE 0x00 +#define IPC_CALL_PREFIX_INTL 0x11 /* Only for ipc_call_status, NOT call_list */ -#define IPC_CALL_STATE_DIALING 0x01 -#define IPC_CALL_STATE_IGNORING_INCOMING_STATUS 0x02 -#define IPC_CALL_STATE_CONNECTED 0x03 -#define IPC_CALL_STATE_RELEASED 0x04 -#define IPC_CALL_STATE_CONNECTING 0x05 +#define IPC_CALL_STATE_DIALING 0x01 +#define IPC_CALL_STATE_IGNORING_INCOMING_STATUS 0x02 +#define IPC_CALL_STATE_CONNECTED 0x03 +#define IPC_CALL_STATE_RELEASED 0x04 +#define IPC_CALL_STATE_CONNECTING 0x05 -#define IPC_CALL_TERM_MO 0x01 -#define IPC_CALL_TERM_MT 0x02 +#define IPC_CALL_TERM_MO 0x01 +#define IPC_CALL_TERM_MT 0x02 struct ipc_call_outgoing { - unsigned char type, identity; - unsigned char length, prefix; - unsigned char number[86]; + unsigned char type; // IPC_CALL_TYPE_... + unsigned char identity; // IPC_CALL_IDENTITY_... + unsigned char length; + unsigned char prefix; // IPC_CALL_PREFIX_... + unsigned char number[86]; } __attribute__((__packed__)); struct ipc_call_incoming { - unsigned char type, id, line; + unsigned char type; // IPC_CALL_TYPE_... + unsigned char id; + unsigned char line; } __attribute__((__packed__)); struct ipc_call_list_entry { - unsigned char type, idx; - unsigned char term, state, mpty; - unsigned char number_len; - unsigned char unk4; + unsigned char type; // IPC_CALL_TYPE_... + unsigned char idx; + unsigned char term; // IPC_CALL_TERM_... + unsigned char state; + unsigned char mpty; + unsigned char number_len; + unsigned char unk4; } __attribute__((__packed__)); struct ipc_call_status { - unsigned char type, id, state; - unsigned char reason, end_cause; + unsigned char type; + unsigned char id; + unsigned char state; + unsigned char reason; + unsigned char end_cause; } __attribute__((__packed__)); -void ipc_call_outgoing(const char *number, int identity, int request_id); -void ipc_call_release(int request_id); -void ipc_call_answer(int request_id); -void ipc_call_list(int request_id); +void ipc_call_outgoing_setup(struct ipc_call_outgoing *message, unsigned char type, + unsigned char identity, unsigned char prefix, char *number); #endif diff --git a/samsung-ipc/Makefile.am b/samsung-ipc/Makefile.am index e3d74fb..b26ba56 100644 --- a/samsung-ipc/Makefile.am +++ b/samsung-ipc/Makefile.am @@ -19,6 +19,7 @@ libsamsung_ipc_la_SOURCES = \ misc.c \ sec.c \ gprs.c \ + call.c \ $(NULL) libsamsung_ipc_la_LIBADD = \ diff --git a/samsung-ipc/call.c b/samsung-ipc/call.c new file mode 100644 index 0000000..9573a8d --- /dev/null +++ b/samsung-ipc/call.c @@ -0,0 +1,38 @@ +/** + * This file is part of libsamsung-ipc. + * + * Copyright (C) 2011 Simon Busch <morphis@gravedo.de> + * + * libsamsung-ipc is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * libsamsung-ipc is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include <radio.h> +#include <string.h> +#include <stdlib.h> +#include <assert.h> + +#define OUTGOING_NUMBER_MAX_LENGTH 86 + +void ipc_call_outgoing_setup(struct ipc_call_outgoing *message, unsigned char type, + unsigned char identity, unsigned char prefix, char *number) +{ + assert(message != NULL); + + message->type = type; + message->identity = identity; + message->prefix = prefix; + strncpy(message->number, number, OUTGOING_NUMBER_MAX_LENGTH); +} + diff --git a/vapi/samsung-ipc-1.0.vapi b/vapi/samsung-ipc-1.0.vapi index 4890955..9c98faf 100644 --- a/vapi/samsung-ipc-1.0.vapi +++ b/vapi/samsung-ipc-1.0.vapi @@ -650,12 +650,14 @@ namespace SamsungIpc [CCode (cname = "struct ipc_call_outgoing", destroy_function = "")] public struct OutgoingMessage { - public uint8 type; + public Type type; public Identity identity; public uint8 length; public Prefix prefix; public uint8[] number; + public void setup(Type type, Identity identity, Prefix prefix, string number); + public unowned uint8[] data { get |