aboutsummaryrefslogtreecommitdiff
path: root/src/conversation/conversation_api_call.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-11-15 23:03:15 +0000
committerChristian Grothoff <christian@grothoff.org>2013-11-15 23:03:15 +0000
commit7cfda6b0bca4ef0d1989129054c0501ee998e5f6 (patch)
treed31af1465a023881bb3e1ac8b54e43c2ec6ebeeb /src/conversation/conversation_api_call.c
parentbad1ac644457b2410e6f354dc52ba4857933ab26 (diff)
downloadgnunet-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.c41
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)
652void 652void
653GNUNET_CONVERSATION_call_suspend (struct GNUNET_CONVERSATION_Call *call) 653GNUNET_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