diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-11-15 23:03:15 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-11-15 23:03:15 +0000 |
commit | 7cfda6b0bca4ef0d1989129054c0501ee998e5f6 (patch) | |
tree | d31af1465a023881bb3e1ac8b54e43c2ec6ebeeb /src/conversation/conversation_api_call.c | |
parent | bad1ac644457b2410e6f354dc52ba4857933ab26 (diff) | |
download | gnunet-7cfda6b0bca4ef0d1989129054c0501ee998e5f6.tar.gz gnunet-7cfda6b0bca4ef0d1989129054c0501ee998e5f6.zip |
-completing API implementation
Diffstat (limited to 'src/conversation/conversation_api_call.c')
-rw-r--r-- | src/conversation/conversation_api_call.c | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/src/conversation/conversation_api_call.c b/src/conversation/conversation_api_call.c index a57bf1ddb..efd6a60de 100644 --- a/src/conversation/conversation_api_call.c +++ b/src/conversation/conversation_api_call.c | |||
@@ -652,7 +652,24 @@ GNUNET_CONVERSATION_call_stop (struct GNUNET_CONVERSATION_Call *call) | |||
652 | void | 652 | void |
653 | GNUNET_CONVERSATION_call_suspend (struct GNUNET_CONVERSATION_Call *call) | 653 | GNUNET_CONVERSATION_call_suspend (struct GNUNET_CONVERSATION_Call *call) |
654 | { | 654 | { |
655 | GNUNET_break (0); | 655 | struct GNUNET_MQ_Envelope *e; |
656 | struct ClientPhoneSuspendMessage *suspend; | ||
657 | |||
658 | GNUNET_assert ( (CS_SUSPENDED_CALLEE == call->state) || | ||
659 | (CS_ACTIVE == call->state) ); | ||
660 | if (CS_ACTIVE == call->state) | ||
661 | { | ||
662 | call->speaker->disable_speaker (call->speaker->cls); | ||
663 | call->mic->disable_microphone (call->mic->cls); | ||
664 | } | ||
665 | call->speaker = NULL; | ||
666 | call->mic = NULL; | ||
667 | e = GNUNET_MQ_msg (suspend, GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_SUSPEND); | ||
668 | GNUNET_MQ_send (call->mq, e); | ||
669 | if (CS_SUSPENDED_CALLER == call->state) | ||
670 | call->state = CS_SUSPENDED_BOTH; | ||
671 | else | ||
672 | call->state = CS_SUSPENDED_CALLER; | ||
656 | } | 673 | } |
657 | 674 | ||
658 | 675 | ||
@@ -671,7 +688,27 @@ GNUNET_CONVERSATION_call_resume (struct GNUNET_CONVERSATION_Call *call, | |||
671 | struct GNUNET_SPEAKER_Handle *speaker, | 688 | struct GNUNET_SPEAKER_Handle *speaker, |
672 | struct GNUNET_MICROPHONE_Handle *mic) | 689 | struct GNUNET_MICROPHONE_Handle *mic) |
673 | { | 690 | { |
674 | GNUNET_break (0); | 691 | struct GNUNET_MQ_Envelope *e; |
692 | struct ClientPhoneResumeMessage *resume; | ||
693 | |||
694 | GNUNET_assert ( (CS_SUSPENDED_CALLER == call->state) || | ||
695 | (CS_SUSPENDED_BOTH == call->state) ); | ||
696 | e = GNUNET_MQ_msg (resume, GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_RESUME); | ||
697 | GNUNET_MQ_send (call->mq, e); | ||
698 | call->speaker = speaker; | ||
699 | call->mic = mic; | ||
700 | if (CS_SUSPENDED_CALLER == call->state) | ||
701 | { | ||
702 | call->state = CS_ACTIVE; | ||
703 | call->speaker->enable_speaker (call->speaker->cls); | ||
704 | call->mic->enable_microphone (call->mic->cls, | ||
705 | &transmit_call_audio, | ||
706 | call); | ||
707 | } | ||
708 | else | ||
709 | { | ||
710 | call->state = CS_SUSPENDED_CALLEE; | ||
711 | } | ||
675 | } | 712 | } |
676 | 713 | ||
677 | 714 | ||