call: P2P аудиозвонки — сигналинг, релей медиа, аудио-контур, headless/desktop/android
- src/call/: сигналинг (call.c, call_proto.h, ETCP_RT_ID_CALL 0x36) + релей медиа + headless аудио-сокет (call_headless.c, call_audio_bind) + Opus/jitter/тоны - chat: события CHAT_EVT_CALL_* (34–40), CHAT_EVT_DM_MESSAGES (41), DM-трамплины - chatgui: call window, miniaudio I/O, audio_frame_ring, test_audio_jitter - chatgui-android: CallScreen/IncomingCallDialog, аудио-роутинг, JNI, рингтон - tests: test_call, test_call_headless
This commit is contained in:
1 parent
0157f7f96b
commit
b11e77e4c0
78 files changed
+7053
-70
No files matched your search
@@ -471,6 +471,10 @@ void AccountList::onMemberContextMenu(const QPoint& pos) {
|
||||
QString name = m_model->data(index, Qt::DisplayRole).toString();
|
||||
|
||||
QMenu menu(m_listView);
|
||||
QAction* pmAction = menu.addAction(QString::fromUtf8("Написать сообщение"));
|
||||
if (nodeId == m_db->myNodeId()) pmAction->setEnabled(false);
|
||||
QAction* callAction = menu.addAction(QString::fromUtf8("Позвонить"));
|
||||
if (nodeId == m_db->myNodeId() || !m_model->isOnlineAt(index.row())) callAction->setEnabled(false);
|
||||
QAction* connectAction = menu.addAction("Connect");
|
||||
if (nodeId == m_db->myNodeId()) connectAction->setEnabled(false);
|
||||
QAction* renameAction = menu.addAction("Rename");
|
||||
@@ -478,6 +482,16 @@ void AccountList::onMemberContextMenu(const QPoint& pos) {
|
||||
QAction* editAction = menu.addAction("Edit");
|
||||
QAction* chosen = menu.exec(m_listView->viewport()->mapToGlobal(pos));
|
||||
|
||||
if (chosen == pmAction) {
|
||||
emit pmRequested(m_channelId, nodeId, name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (chosen == callAction) {
|
||||
emit callRequested(m_channelId, nodeId, name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (chosen == connectAction) {
|
||||
struct chat_connect_node_req* r = (struct chat_connect_node_req*)u_malloc(sizeof(*r));
|
||||
if (!r) return;
|
||||
|
||||
Reference in new issue
Block a user