diff options
author | erin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2007-12-17 09:31:02 +0000 |
---|---|---|
committer | erin_yueh <erin_yueh@99fdad57-331a-0410-800a-d7fa5415bdb3> | 2007-12-17 09:31:02 +0000 |
commit | cbbf4601211669ededac8d41d6adaec277af3e3b (patch) | |
tree | 4a89c2808f5d40f09e7d0cafd5749e3d89915c71 /src/libgsmd | |
parent | e4fa3bc9cd52873af5cd1b3382b065778c7ebc3e (diff) |
gsmd: conference call support (Sean Chiang)
git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3657 99fdad57-331a-0410-800a-d7fa5415bdb3
Diffstat (limited to 'src/libgsmd')
-rw-r--r-- | src/libgsmd/libgsmd_voicecall.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libgsmd/libgsmd_voicecall.c b/src/libgsmd/libgsmd_voicecall.c index 214ae0c..8804cce 100644 --- a/src/libgsmd/libgsmd_voicecall.c +++ b/src/libgsmd/libgsmd_voicecall.c @@ -100,3 +100,28 @@ int lgsm_voice_get_status(struct lgsm_handle *lh) { return lgsm_send_simple(lh, GSMD_MSG_VOICECALL, GSMD_VOICECALL_GET_STAT); } + +int lgsm_voice_ctrl(struct lgsm_handle *lh, const struct lgsm_voicecall_ctrl *ctrl) +{ + struct gsmd_msg_hdr *gmh; + struct gsmd_call_ctrl *gcc; + int rc; + + gmh = lgsm_gmh_fill(GSMD_MSG_VOICECALL, + GSMD_VOICECALL_CTRL, sizeof(*gcc)); + if (!gmh) + return -ENOMEM; + gcc = (struct gsmd_call_ctrl *) gmh->data; + gcc->proc = ctrl->proc; + gcc->idx = ctrl->idx; + + rc = lgsm_send(lh, gmh); + if (rc < gmh->len + sizeof(*gmh)) { + lgsm_gmh_free(gmh);; + return -EIO; + } + + lgsm_gmh_free(gmh); + + return 0; +} |