public void moveToFullMode(int viewIdForFullMode) { _on_full_mode = true; for (int i = 0; i < _renders.size(); i++) { RenderViewData d = _renders.valueAt(i); if (d._view_id != viewIdForFullMode) { String user = getParticipantByViewId(d._view_id); LogSdk.d(TAG, "pausing GLview " + d._view_id + " for user " + user); if (d._video_on) { ConferenceCore.instance().receiveParticipantVideoOff(user); LogSdk.d(TAG, "send turn video Off for user " + user); } d.isFullMode = false; } else { d.isFullMode = true; } } }
public void moveToMultiMode(int viewIdForFullMode) { _on_full_mode = false; int numActiveRenders = 0; for (int i = 0; i < _renders.size(); i++) { RenderViewData d = _renders.valueAt(i); if (d._view_id != viewIdForFullMode) { d.isFullMode = false; if (d._video_on && d._user != null) { numActiveRenders++; ConferenceCore.instance().receiveParticipantVideoOn(d._user); LogSdk.d(TAG, "resume GLview " + d._view_id + " for user " + d._user); } } else { numActiveRenders++; } } if (numActiveRenders < ParticipantsManager.MAX_ACTIVE_PARTICIPANTS_IN_CALL && _users.size() > numActiveRenders) { fillEmptyRenders(); } }
public boolean removeParticipant(String sParticipantId) { boolean updateFullMode = false; if (!_users.containsKey(sParticipantId)) { LogSdk.e(TAG, "remove Participant failed! Participant " + sParticipantId + " not found"); return updateFullMode; } Integer view_id = _users.get(sParticipantId).getViewId(); if (view_id == -1) { LogSdk.d(TAG, "Participant " + sParticipantId + " is not connected to any GLView"); } else { RenderViewData d = _renders.get(view_id); updateFullMode = d.isFullMode; d._render.disconnect(); d._video_on = false; d._user = null; } _users.remove(sParticipantId); if (updateFullMode) { _on_full_mode = true; for (int i = 0; i < _renders.size(); i++) { RenderViewData d = _renders.valueAt(i); if (d._view_id != view_id) { String user = getParticipantByViewId(d._view_id); LogSdk.d(TAG, "pausing GLview " + d._view_id + " for user " + user); if (d._video_on) { ConferenceCore.instance().receiveParticipantVideoOff(user); LogSdk.d(TAG, "send turn video Off for user " + user); } } else { d.isFullMode = false; } } } LogSdk.d(TAG, "remove Participant " + sParticipantId + " GLView " + view_id + " is free."); return updateFullMode; }
public boolean removeParticipant(String sParticipantId) { boolean updateFullMode = false; if (!_users.containsKey(sParticipantId)) { LogSdk.e(TAG, "remove Participant failed! Participant " + sParticipantId + " not found"); return updateFullMode; } Integer view_id = _users.get(sParticipantId).getViewId(); if (view_id == -1) { LogSdk.d(TAG, "Participant " + sParticipantId + " is not connected to any GLView"); } else { RenderViewData d = _renders.get(view_id); updateFullMode = d.isFullMode; d.isFullMode = false; d._render.disconnect(); d._video_on = false; d._user = null; } _users.remove(sParticipantId); if (updateFullMode) moveToMultiMode(-1); LogSdk.d(TAG, "remove Participant " + sParticipantId + " GLView " + view_id + " is free."); return updateFullMode; }