private void HandleAccountArchiveMessage(vx_evt_base_t eventMessage) { vx_evt_account_archive_message_t evt = eventMessage; if (evt.account_handle != _accountHandle) { return; } DateTime parsedReceivedTime; if (!DateTime.TryParse(evt.time_stamp, out parsedReceivedTime)) { VivoxDebug.Instance.DebugMessage($"{GetType().Name}: {eventMessage.GetType().Name} invalid message: Bad time format", vx_log_level.log_error); Debug.Assert(false); return; } var message = new AccountArchiveMessage() { LoginSession = this, Key = evt.message_id, MessageId = evt.message_id, QueryId = evt.query_id, ReceivedTime = parsedReceivedTime, Message = evt.message_body, Inbound = (evt.is_inbound != 0), Language = evt.language, RemoteParticipant = new AccountId(evt.participant_uri), Channel = new ChannelId(evt.channel_uri) }; _accountArchive.Enqueue(message); }
private void HandleSessionMessage(vx_evt_base_t eventMessage) { vx_evt_message_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } var message = new ChannelTextMessage() { Sender = _participants.ContainsKey(evt.participant_uri) ? _participants[evt.participant_uri].Account : new AccountId(evt.participant_uri), Message = evt.message_body, ReceivedTime = DateTime.Now, Key = _nextTextId++.ToString("D8"), ApplicationStanzaBody = evt.application_stanza_body, ApplicationStanzaNamespace = evt.application_stanza_namespace, Language = evt.language, ChannelSession = this, FromSelf = (evt.is_current_user != 0) }; _messageLog.Enqueue(message); }
private void HandleSessionArchiveMessage(vx_evt_base_t eventMessage) { vx_evt_session_archive_message_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } DateTime parsedReceivedTime; if (!DateTime.TryParse(evt.time_stamp, out parsedReceivedTime)) { VivoxDebug.Instance.DebugMessage($"{GetType().Name}: {eventMessage.GetType().Name} invalid message: Bad time format", vx_log_level.log_error); Debug.Assert(false); return; } ChannelParticipant p = _participants[evt.participant_uri] as ChannelParticipant; var message = new SessionArchiveMessage() { ChannelSession = this, Key = evt.message_id, MessageId = evt.message_id, QueryId = evt.query_id, ReceivedTime = parsedReceivedTime, Sender = p != null ? p.Account : new AccountId(evt.participant_uri), Message = evt.message_body, FromSelf = (evt.is_current_user != 0), Language = evt.language }; _sessionArchive.Enqueue(message); }
public vx_evt_base_t as_evt_base() { global::System.IntPtr cPtr = VivoxCoreInstancePINVOKE.vx_message_base_t_as_evt_base(swigCPtr); vx_evt_base_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vx_evt_base_t(cPtr, false); return(ret); }
private void OnEventMessageReceived(vx_evt_base_t eventMessage) { if (eventMessage.type == vx_event_type.evt_audio_device_hot_swap) { HandleDeviceHotSwap(eventMessage); } }
private void HandleParticipantAdded(vx_evt_base_t eventMessage) { vx_evt_participant_added_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } _participants[evt.participant_uri] = new ChannelParticipant(this, evt); }
private void HandleSubscription(vx_evt_base_t eventMessage) { vx_evt_subscription_t evt = eventMessage; Debug.Assert(evt != null); if (evt.account_handle != _accountHandle) { return; } _incomingSubscriptionRequests.Enqueue(new AccountId(evt.buddy_uri)); }
private void HandleParticipantRemoved(vx_evt_base_t eventMessage) { vx_evt_participant_removed_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } _participants.Remove(evt.participant_uri); }
private void HandleTTSInjectionEnded(vx_evt_base_t eventMessage) { vx_evt_tts_injection_ended_t evt = eventMessage; Debug.Assert(evt != null); TTSMessage matchingMessage = GetTTSMessageFromEvt(evt.utterance_id); if (null != matchingMessage) { _ttsMessages.Cleanup(matchingMessage); } }
private void HandleAccountLoginStateChangeEvt(vx_evt_base_t eventMessage) { vx_evt_account_login_state_change_t evt = eventMessage; Debug.Assert(evt != null); if (evt.account_handle != _accountHandle) { return; } // Using the property, since its setter includes triggering the PropertyChanged event State = (LoginState)evt.state; }
public void HandleMediaComplete(vx_evt_base_t eventMessage) { vx_evt_media_completion_t evt = eventMessage; Debug.Assert(evt != null); switch (evt.completion_type) { case vx_media_completion_type.sessiongroup_audio_injection: IsInjectingAudio = false; break; } }
private void HandleTTSInjectionFailed(vx_evt_base_t eventMessage) { vx_evt_tts_injection_failed_t evt = eventMessage; Debug.Assert(evt != null); TTSMessage matchingMessage = GetTTSMessageFromEvt(evt.utterance_id); if (null != matchingMessage) { _ttsMessages.Cleanup(matchingMessage); throw new VivoxApiException((int)evt.status); } }
private void HandleTTSInjectionStarted(vx_evt_base_t eventMessage) { vx_evt_tts_injection_started_t evt = eventMessage; Debug.Assert(evt != null); TTSMessage matchingMessage = GetTTSMessageFromEvt(evt.utterance_id); if (null != matchingMessage) { matchingMessage.NumConsumers = evt.num_consumers; matchingMessage.Duration = evt.utterance_duration; matchingMessage.State = TTSMessageState.Playing; } }
private void InstanceOnEventMessageReceived(vx_evt_base_t eventMessage) { if (_deleted) { return; } switch ((vx_event_type)eventMessage.type) { case vx_event_type.evt_participant_added: HandleParticipantAdded(eventMessage); break; case vx_event_type.evt_participant_removed: HandleParticipantRemoved(eventMessage); break; case vx_event_type.evt_participant_updated: HandleParticipantUpdated(eventMessage); break; case vx_event_type.evt_media_stream_updated: HandleMediaStreamUpdated(eventMessage); break; case vx_event_type.evt_text_stream_updated: HandleTextStreamUpdated(eventMessage); break; case vx_event_type.evt_session_removed: HandleSessionRemoved(eventMessage); break; case vx_event_type.evt_message: HandleSessionMessage(eventMessage); break; case vx_event_type.evt_session_archive_message: HandleSessionArchiveMessage(eventMessage); break; case vx_event_type.evt_session_archive_query_end: HandleSessionArchiveQueryEnd(eventMessage); break; case vx_event_type.evt_transcribed_message: HandleSessionTranscribedMessage(eventMessage); break; } }
private void HandleSessionRemoved(vx_evt_base_t eventMessage) { vx_evt_session_removed_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } AudioState = ConnectionState.Disconnected; TextState = ConnectionState.Disconnected; _participants.Clear(); _typing = false; _messageLog.Clear(); }
private void HandleAccountArchiveQueryEnd(vx_evt_base_t eventMessage) { vx_evt_account_archive_query_end_t evt = eventMessage; if (evt.account_handle != _accountHandle) { return; } if (_accountArchiveResult.QueryId != evt.query_id || !_accountArchiveResult.Running) { return; } _accountArchiveResult = new ArchiveQueryResult(evt); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(AccountArchiveResult))); }
private void InstanceOnEventMessageReceived(vx_evt_base_t eventMessage) { switch ((vx_event_type)eventMessage.type) { case vx_event_type.evt_tts_injection_started: HandleTTSInjectionStarted(eventMessage); break; case vx_event_type.evt_tts_injection_ended: HandleTTSInjectionEnded(eventMessage); break; case vx_event_type.evt_tts_injection_failed: HandleTTSInjectionFailed(eventMessage); break; } }
private void HandleSessionArchiveQueryEnd(vx_evt_base_t eventMessage) { vx_evt_session_archive_query_end_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } if (_sessionArchiveResult.QueryId != evt.query_id || !_sessionArchiveResult.Running) { return; } _sessionArchiveResult = new ArchiveQueryResult(evt); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SessionArchiveResult))); }
private void HandleDeviceHotSwap(vx_evt_base_t eventMessage) { BeginRefresh(new AsyncCallback((IAsyncResult result) => { try { EndRefresh(result); } catch (Exception e) { VivoxDebug.Instance.VxExceptionMessage($"BeginRefresh failed: {e}"); if (VivoxDebug.Instance.throwInternalExcepetions) { throw; } } })); }
private void HandleTextStreamUpdated(vx_evt_base_t eventMessage) { vx_evt_text_stream_updated_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } if (evt.state == vx_session_text_state.session_text_connected) { TextState = ConnectionState.Connected; } else if (evt.state == vx_session_text_state.session_text_disconnected) { TextState = ConnectionState.Disconnected; } }
private void HandleUserToUserMessage(vx_evt_base_t eventMessage) { vx_evt_user_to_user_message_t evt = eventMessage; if (evt.account_handle != _accountHandle) { return; } Debug.Assert(evt != null); _directedMessages.Enqueue(new DirectedTextMessage { ReceivedTime = DateTime.Now, Message = evt.message_body, Sender = new AccountId(evt.from_uri), ApplicationStanzaBody = evt.application_stanza_body, ApplicationStanzaNamespace = evt.application_stanza_namespace, Language = evt.language, LoginSession = this }); }
private void HandleBuddyPresenceEvt(vx_evt_base_t eventMessage) { vx_evt_buddy_presence_t evt = eventMessage; if (evt.account_handle != _accountHandle) { return; } var buddyAccount = new AccountId(evt.buddy_uri, evt.displayname); if (!_presenceSubscriptions.ContainsKey(buddyAccount)) { return; } var subscription = (PresenceSubscription)_presenceSubscriptions[buddyAccount]; subscription.UpdateLocation(evt.buddy_uri, (PresenceStatus)evt.presence, evt.custom_message); }
private void HandleAccountSendMessageFailed(vx_evt_base_t eventMessage) { vx_evt_account_send_message_failed_t evt = eventMessage; Debug.Assert(evt != null); AssertLoggedIn(); if (evt.account_handle != _accountHandle) { return; } if (_directedMessageResult.RequestId != evt.request_id) { return; } _failedDirectedMessages.Enqueue(new FailedDirectedTextMessage { Sender = new AccountId(evt.account_handle), RequestId = evt.request_id, StatusCode = evt.status_code }); }
private void HandleSessionTranscribedMessage(vx_evt_base_t eventMessage) { vx_evt_transcribed_message_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } TranscribedMessage message = new TranscribedMessage( _participants.ContainsKey(evt.participant_uri) ? _participants[evt.participant_uri].Account : new AccountId(evt.participant_uri), evt.text, _nextTranscriptiontId++.ToString("D8"), evt.language, this, (evt.is_current_user != 0) ); _transcribedLog.Enqueue(message); }
private void HandleParticipantUpdated(vx_evt_base_t eventMessage) { vx_evt_participant_updated_t evt = eventMessage; Debug.Assert(evt != null); if (evt.session_handle != _sessionHandle) { return; } if (_participants.ContainsKey(evt.participant_uri)) { ChannelParticipant p = _participants[evt.participant_uri] as ChannelParticipant; Debug.Assert(p != null); p.IsMutedForAll = evt.is_moderator_muted != 0; p.SpeechDetected = evt.is_speaking != 0; p.InAudio = (evt.active_media & 0x1) == 0x1; p.InText = (evt.active_media & 0x2) == 0x2; p.AudioEnergy = evt.energy; p._internalVolumeAdjustment = evt.volume; p._internalMute = evt.is_muted_for_me != 0; } }
private void Instance_EventMessageReceived(vx_evt_base_t eventMessage) { switch ((vx_event_type)eventMessage.type) { case vx_event_type.evt_account_login_state_change: HandleAccountLoginStateChangeEvt(eventMessage); break; case vx_event_type.evt_buddy_presence: HandleBuddyPresenceEvt(eventMessage); break; case vx_event_type.evt_user_to_user_message: HandleUserToUserMessage(eventMessage); break; case vx_event_type.evt_subscription: HandleSubscription(eventMessage); break; case vx_event_type.evt_account_archive_message: HandleAccountArchiveMessage(eventMessage); break; case vx_event_type.evt_account_archive_query_end: HandleAccountArchiveQueryEnd(eventMessage); break; case vx_event_type.evt_media_completion: HandleMediaComplete(eventMessage); break; case vx_event_type.evt_account_send_message_failed: HandleAccountSendMessageFailed(eventMessage); break; } }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vx_evt_base_t obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }