Commit Graph

903 Commits

Author SHA1 Message Date
23rd 78f0cf908e Moved RateCallBox to td_ui. 2021-10-29 16:10:07 +04:00
John Preston 57345cec3b Discard incoming calls by ring_timeout (1.5 minutes). 2021-10-25 09:43:12 +04:00
Ilya Fedin 847c01d605 Add Qt 6 support
Tested only on Linux so far
2021-10-21 13:15:00 +04:00
23rd 80461bd9fe Moved ConfirmBox to Ui namespace. 2021-10-19 06:34:27 +03:00
23rd 6148edbc7d Moved ConfirmBox to td_ui. 2021-10-19 06:34:27 +03:00
23rd 9117b3cdfa Extracted DeleteMessagesBox to separated file. 2021-10-19 06:34:27 +03:00
John Preston c04cdff7f7 Disable group call logs to console. 2021-10-07 11:42:24 +04:00
John Preston 1e660fc2a2 Allocate 64 bits for message ids. 2021-09-30 13:49:37 +04:00
John Preston 19ce1edc16 Use base::SafeRound instead of std::round.
Previous assertion violations because of NaN from std::round were
in video streaming, see commits 27d58ba07b, 8f5830d520.

Now the crashes happened in the ConvertScale() call from a background
thread when preparing an image from clipboard for sending to a chat.
2021-09-27 12:13:57 +04:00
John Preston 155bbed3f4 Show correct video recording status. 2021-09-19 14:42:56 +03:00
John Preston 8069fdd873 Use base/random.h instead of openssl::RandomValue. 2021-09-15 13:42:22 +03:00
John Preston ce256161f1 Couple of crash fixes. 2021-09-13 17:39:17 +03:00
John Preston f73264025d Fix a crash after joining broadcasts. 2021-09-13 14:21:01 +03:00
23rd 900a7d0b2b Appended references to const auto types in loop to prevent copying.
Suggested by Apple Clang.
2021-09-09 16:32:04 +03:00
John Preston 14314df26a Show userpics in who read context item. 2021-09-09 00:10:49 +03:00
John Preston d00226d51e Don't show important tooltips above layers. 2021-09-07 23:41:08 +03:00
23rd 4582d2d0d5 Attempted to fix ordering buttons above boxes in group calls panel. 2021-09-07 23:41:08 +03:00
23rd cd59ba6629 Added ability to start video recording in group calls. 2021-09-07 23:41:08 +03:00
John Preston a6c98f4bb4 Update API scheme to layer 133. 2021-09-07 23:41:07 +03:00
John Preston 9f43719075 Fix build with Xcode. 2021-09-07 12:18:18 +03:00
John Preston 463da7e410 Allow Ui::GL::Renderer::deinit on lost context. 2021-09-06 13:13:26 +03:00
John Preston 16c9031f88 Fix a phrase in voice chat settings. 2021-09-06 13:13:26 +03:00
John Preston f6175e7b7c Invite by link in case of non-self voice chat join. 2021-09-02 11:04:28 +03:00
John Preston e9a5c45f34 Use separate strings for channel voice chats. 2021-08-31 17:59:29 +03:00
John Preston 29c0956d61 Always try to play video in voice chats. 2021-08-30 20:32:57 +03:00
John Preston 0cfede984c Update API scheme to layer 132. 2021-08-30 20:32:56 +03:00
John Preston 1cc9a52461 Fix my speaking status freeze in voice chats. 2021-08-18 17:52:23 +03:00
John Preston cd52982752 Hopefully fix an assertion violation in voice chats. 2021-08-18 17:45:21 +03:00
John Preston ca31a08182 Fix 'Sorry, group is inac...' in scheduled voice chat. 2021-08-18 11:34:16 +03:00
John Preston c79cd0b692 Use Images::Read instead of App::readImage. 2021-08-11 18:55:08 +03:00
Ilya Fedin 97262a99c7 Get rid of osx and linux32 special targets 2021-08-11 16:59:27 +03:00
John Preston 46885b7f9f Fix mouse input in layers in call window. 2021-08-11 11:06:34 +03:00
John Preston 91ef6f13c8 Use good bitrate for screen capture in calls. 2021-08-10 15:46:18 +03:00
John Preston f3ab01604c Version 2.9: Fix build on Linux. 2021-07-30 21:03:49 +03:00
John Preston 66bcc20f58 Fix requesting screencast rights on macOS. 2021-07-30 20:45:00 +03:00
John Preston bd78bac4bf Warn admins about many voice chat participants. 2021-07-30 16:06:27 +03:00
John Preston c100055fac Allow sharing screen or window in one-on-one calls. 2021-07-30 00:40:25 +03:00
John Preston 4a86b172d4 Rename Ui::Window to Ui::RpWindow. 2021-07-28 16:24:11 +03:00
John Preston 116a768fde Don't use MTP* for Message flags. 2021-07-28 15:28:17 +03:00
John Preston bc707320f8 Add 'invited' icon in narrow voice chat members list. 2021-07-28 15:16:23 +03:00
John Preston 99505b4ee2 Beta version 2.8.12: Fix build on Linux. 2021-07-23 20:42:24 +03:00
John Preston c0f8e68f5d Don't use CurrentSingleComponentFormat.
Fix noise in voice chat blur in OpenGL ES (ANGLE).
2021-07-23 15:42:16 +03:00
Christian Hesse b2c762e974
Set (group) call window icon. 2021-07-20 00:15:04 +04:00
Ilya Fedin ba9b72e038 Fix -Wunused-variable warnings with gcc 2021-07-19 22:31:27 +03:00
Christian Hesse 3d1a049405 window title for call window
Having an empty window title brings different issues, for example:

* invisible on task bar
* invisible in task switcher
* apply properties by match
* ...

So let's use the contact user name for window title.

Fixes #10243
2021-07-19 19:26:32 +03:00
John Preston 10e1feb40b Use GL_BGRA_EXT format with ANGLE. 2021-07-15 16:42:38 +03:00
John Preston 4d99c1fd44 Allow sharing system audio with window share. 2021-07-15 16:42:38 +03:00
John Preston 4276b6cce0 Use rpl for Window::Theme::Background updates. 2021-07-15 16:42:36 +03:00
John Preston 86a2a4d63a Count unique video senders in limit. 2021-07-13 22:08:10 +03:00
John Preston db81638656 Allow sharing screen with sound on Windows. 2021-07-13 22:08:09 +03:00
John Preston 402729dc99 Check unmuted video limit in group call. 2021-07-13 22:08:09 +03:00
John Preston 801c8b6220 Screencast with system sound on Windows. 2021-07-13 22:08:09 +03:00
John Preston cc013305ac Apply local volume / mute to additional audio stream. 2021-07-13 22:08:09 +03:00
John Preston f17fc0b670 Support additional audio ssrc. 2021-07-13 22:08:09 +03:00
Ilya Fedin 79cc797aff Fix -Wunused-variable warnings 2021-07-13 21:43:34 +03:00
Ilya Fedin 89765340c3 Fix -Wunused-function warnings 2021-07-13 21:31:22 +03:00
John Preston a74228acea Don't use MTP* for ChannelData flags. 2021-07-08 16:11:09 +03:00
John Preston e34375405e Don't use MTP* for UserData flags. 2021-07-08 14:19:12 +03:00
John Preston 2ffda9f240 Don't use MTP* for ChatAdminRight / ChatRestriction. 2021-07-08 13:34:06 +03:00
John Preston 6be9b25e99 Submit voice chat boxes by Enter. 2021-07-05 15:37:34 +03:00
John Preston 6cea7d4a52 Fix YUV->RGB on D3D9 ANGLE backend. 2021-07-01 23:46:52 +03:00
John Preston 8a6ff3f414 Add separator above volume control in voice chats. 2021-06-24 17:44:55 +04:00
John Preston 5dcc219f1c For large video tile always request full quality. 2021-06-24 10:57:23 +04:00
John Preston d1e3e7d240 Don't show pinned tooltips if only one video. 2021-06-23 20:14:49 +04:00
John Preston 14a2b10989 Show error if camera could not be enabled. 2021-06-23 12:04:05 +04:00
John Preston b29f8aa1e6 Remove background over highlight in volume change item. 2021-06-23 11:07:23 +04:00
John Preston f9bb932cd8 Fix voice chat window expanding near the screen edges. 2021-06-23 10:52:04 +04:00
John Preston ff14ac68ee Always show tooltip about the muted microphone. 2021-06-22 19:50:26 +04:00
John Preston 659ddae9a8 Use native child window in video calls on Windows. 2021-06-21 11:29:29 +04:00
John Preston b70276912e Use native child window in group calls on Windows. 2021-06-21 09:23:10 +04:00
John Preston 8897f9e46a Limit requested qualities to 4 Full / 16 Medium. 2021-06-18 18:43:13 +04:00
John Preston 7a588be54f Add a hint to unmute your microphone. 2021-06-18 17:47:07 +04:00
John Preston 1cb1f1cbc1 Add a hint to turn on the camera. 2021-06-18 16:11:32 +04:00
John Preston 003fb52fb9 Make 100% volume value more sticky. 2021-06-17 16:42:50 +04:00
John Preston ec234cdc43 Improve volume slider design in group calls. 2021-06-17 16:22:51 +04:00
John Preston 0b4605a656 Don't pass Quality::Medium for screencast to tgcalls. 2021-06-17 12:03:26 +04:00
John Preston e19af1257c Improve video in voice chats controls layout. 2021-06-17 11:52:53 +04:00
23rd b422ec025e Removed Ui::show from classes that have pointer to Controller. 2021-06-17 10:57:45 +04:00
23rd 6d08542afa Moved proxy global variables from facades to core settings. 2021-06-16 09:31:32 +03:00
John Preston 52e841ec29 Select correct quality for incoming screencast. 2021-06-16 08:59:15 +04:00
John Preston df28da4d97 Show "Video is paused" in wide panel mode. 2021-06-15 16:49:53 +04:00
John Preston f18e157e46 Add video placeholder if can't receive it. 2021-06-15 14:30:51 +04:00
John Preston b2bf8244dd Add "Enable noise suppression" setting to group calls. 2021-06-15 12:33:02 +04:00
John Preston 7059336ff0 Show red mute icon for force-muted. 2021-06-14 15:15:33 +04:00
John Preston 94f10ce72e Fix dropping self level around mute button. 2021-06-14 14:57:25 +04:00
John Preston 68be54288c Fix working using OpenGLES / ANGLE. 2021-06-14 12:16:00 +04:00
John Preston 0fde35f59e Increase limit for full video request. 2021-06-11 22:52:59 +04:00
John Preston 46dfde881a Fix crash in screencast error handling. 2021-06-11 19:19:50 +04:00
John Preston 95f7704d14 Fix crash in voice chat camera enabling. 2021-06-11 19:12:14 +04:00
John Preston 8d8fffd306 Fix OpenGL renderers on macOS. 2021-06-11 17:35:16 +04:00
John Preston 7a0ba58ffd Don't construct Webrtc::VideoTrack only for state tracking. 2021-06-11 14:20:00 +04:00
John Preston 4543656aa3 Implement screencast pause in TDesktop. 2021-06-11 14:20:00 +04:00
John Preston 2f986660ff Optimize background painting in OpenGL renderers. 2021-06-10 23:37:09 +04:00
John Preston f9f98975a1 Implement OpenGL renderer for one-on-one calls. 2021-06-10 17:16:17 +04:00
John Preston 84f6a5f957 Handle "video_joined" flag in self participant. 2021-06-09 09:19:29 +04:00
John Preston 054223efe0 Request screen recording permissions on macOS. 2021-06-09 09:19:29 +04:00
John Preston c5a46d9d1b For surface with parent backend should be fixed. 2021-06-09 09:19:29 +04:00
John Preston e41fb0d8fd Fix ARGB32 frame rendering. 2021-06-09 09:19:28 +04:00
John Preston 5970f3de9e Show video paused icon. 2021-06-09 09:19:28 +04:00
John Preston 7878552e7d Fix hiding rows with video in narrow column. 2021-06-09 09:19:28 +04:00
John Preston b3648d0147 Use QOpenGLShaderProgram::bind. 2021-06-09 09:19:28 +04:00
John Preston dd79b3c0d5 Add noise to blur to remove color banding. 2021-06-09 09:19:28 +04:00
John Preston 3d76e6de55 Improve level meter design in group call settings. 2021-06-09 09:19:28 +04:00
John Preston 4f8989fad7 Fix large video being removed animation. 2021-06-09 09:19:28 +04:00
John Preston 945411274f Close large video tile by click anywhere. 2021-06-09 09:19:28 +04:00
John Preston f1f7330bf6 Hide "Remove" context action for participants-groups. 2021-06-09 09:19:28 +04:00
John Preston a1957fe5c0 Stop connecting sound when group call leave starts. 2021-06-09 09:19:28 +04:00
John Preston 9a21d55de7 Show last blurred frame or userpic for paused videos. 2021-06-09 09:19:28 +04:00
John Preston 303ad02c61 Always call raise() before activateWindow(). 2021-06-09 09:19:28 +04:00
John Preston 1858e7e8ac Fix many video tiles in voice chats. 2021-06-09 09:19:28 +04:00
John Preston 482ad74c57 Stop camera/screen video when muted by admin. 2021-06-09 09:19:27 +04:00
John Preston 68ae40ee56 Draw all except controls in OpenGL media viewer. 2021-06-09 09:19:27 +04:00
John Preston 24f8a88625 Start OpenGL media viewer renderer. 2021-06-09 09:19:27 +04:00
John Preston 70f0cce340 Update API scheme. 2021-06-09 09:19:27 +04:00
John Preston 254b02ad6b Fix Release build on Windows. 2021-06-07 16:21:55 +04:00
John Preston e6977b2c33 Start sharing without source choosing in case of PipeWire. 2021-06-01 14:58:30 +04:00
John Preston 28f83f2af4 Show participants Bio when not speaking. 2021-06-01 14:16:55 +04:00
John Preston 5a6e8a0a8c Improve style of desktop capture source choosing. 2021-06-01 13:58:15 +04:00
John Preston e8dd969e78 Fix paint-image vertex shader on macOS. 2021-05-31 23:53:41 +04:00
John Preston acce2a217d Beta version 2.7.6: Fix build on macOS. 2021-05-31 21:51:47 +04:00
John Preston 2fe75f8296 Add large / small video animation. 2021-05-31 21:25:15 +04:00
John Preston b22363224f Track tiles visibility separately from geometry. 2021-05-31 18:40:53 +04:00
John Preston b3c92ed3f4 Rejoin if the call started accepting video. 2021-05-31 18:00:41 +04:00
John Preston dfcc13c7e6 Warn user about pinning of his screencast. 2021-05-31 17:35:41 +04:00
John Preston ba6cee6f81 Add video/screencast pinned/unpinned toasts. 2021-05-31 17:10:30 +04:00
John Preston bcdfd2150d Auto-pin new screencasts. 2021-05-31 15:53:15 +04:00
John Preston d19d6bbcd9 Group call owner chat/channel is always admin. 2021-05-31 15:52:51 +04:00
John Preston 4080fa9bdc Allow mute for me even force-muted participants. 2021-05-31 15:46:15 +04:00
John Preston 136e930362 Paint outline in raster mode. 2021-05-31 08:54:23 +04:00
23rd be53bd5293 Added ability to start recording voice chat without title. 2021-05-30 23:39:55 +03:00
John Preston ec9fa00f46 Bring second large peer video to the top. 2021-05-31 00:07:11 +04:00
John Preston 6a001f2e6c Auto-switch large video by speaking participant. 2021-05-30 23:52:01 +04:00
John Preston 8bde53cd0f Add Back button to large video tiles. 2021-05-30 21:08:54 +04:00
John Preston 090d7d7112 Show video large on click. 2021-05-30 19:14:08 +04:00
John Preston 97c7c0742c Rename LargeVideo to Video in voice chats. 2021-05-30 18:46:51 +04:00
John Preston 90efbf1210 Remove some experimental code. 2021-05-30 18:21:11 +04:00
John Preston 38506d27a1 Hide member rows with active small videos. 2021-05-30 18:09:59 +04:00
John Preston 8a693bc932 Move 'Invite members' button to the bottom. 2021-05-30 14:56:54 +04:00
John Preston 0e49bf5dee Add video tiles in narrow members column. 2021-05-29 23:57:21 +04:00
John Preston 6a967948de Optimize uploading of textures. 2021-05-29 23:27:12 +04:00
John Preston 0771fc14db Use unique_id for tiles instead of PeerData*. 2021-05-29 22:58:11 +04:00
John Preston e1614a280f Add blur effect for video tile background. 2021-05-29 17:00:09 +04:00
John Preston ddf81c949b Add green outline to speaking video tiles. 2021-05-28 21:05:28 +04:00
John Preston 3f2b473287 Add tooltips for wide mode controls. 2021-05-28 19:08:11 +04:00
John Preston d659200a42 Show unmute button tooltip about space bar. 2021-05-28 14:47:41 +04:00
John Preston 9a812090a2 Add some error tooltips in group calls. 2021-05-28 13:23:24 +04:00
John Preston 5b0278847d Add context menu to video tile right click. 2021-05-27 23:20:16 +04:00
John Preston 9d07bb2946 Remove 'Share Screen' menu item in scheduled chats. 2021-05-27 22:47:18 +04:00
John Preston b27d314fa7 Skip deleted users in voice chat invites. 2021-05-27 22:46:20 +04:00
John Preston df666ff724 Implement more robust reconnect management. 2021-05-27 17:09:36 +04:00
John Preston 3709714339 Make '[un]registerLeaveSubscription' work in all windows. 2021-05-27 09:34:33 +04:00
John Preston 6ea66bc527 Fix joining broadcasted streams in voice chats. 2021-05-27 00:37:05 +04:00
John Preston 45cca35724 Implement menu in wide video mode. 2021-05-26 18:21:50 +04:00
John Preston 1c42513e44 Fix pinning video from narrow mode. 2021-05-26 15:29:26 +04:00
John Preston f3e6f5e772 Cancel outgoing video when muted by admin. 2021-05-26 15:12:00 +04:00
John Preston c6f44e7928 Hide video button if the call doesn't support video. 2021-05-26 14:27:48 +04:00
John Preston 7b6b32db74 Fix name display in group call video tiles. 2021-05-26 13:35:01 +04:00
John Preston e7ef3c4b6d Fix crash in GL_RED textures uploading. 2021-05-25 23:34:55 +04:00
John Preston 51d8e9c43d Skip empty rects in painting. 2021-05-25 17:23:50 +04:00
John Preston e50a7a2e42 Toggle wide mode only when videos with frames. 2021-05-25 16:55:01 +04:00
John Preston aaad250a77 Show names in OpenGL renderer. 2021-05-25 16:26:41 +04:00
John Preston 699730b7f4 Show mute icon in OpenGL renderer. 2021-05-25 14:56:26 +04:00
John Preston 302cffba1c Display pin button in OpenGL renderer. 2021-05-25 12:08:06 +04:00
John Preston 2af1d95650 Fix scheduled voice chat creation. 2021-05-24 22:45:16 +04:00
John Preston df6f5d83d6 Make shaders work on OpenGL 2.1. 2021-05-24 22:45:16 +04:00
John Preston 42baa3e1bc Convert YUV420 -> ARGB32 in fragment shader. 2021-05-24 22:45:16 +04:00
John Preston 5f393babd6 Fix video wrap geometry in narrow column. 2021-05-24 22:45:16 +04:00
John Preston b864563f47 Support mode switching in single widget Viewport. 2021-05-24 22:45:16 +04:00
John Preston 3edb2d08ba Optimize frame shader, apply rotation. 2021-05-24 22:45:16 +04:00
John Preston d44f923277 OpenGL render of frames in single widget. 2021-05-24 22:45:16 +04:00
John Preston ec468431b4 Raster render of wide mode in single widget. 2021-05-24 22:45:16 +04:00
John Preston f40659a7b4 Round corners of LargeVideo. 2021-05-24 22:45:16 +04:00
John Preston 047989abcf Fill solid background in OpenGL renderer. 2021-05-24 22:45:16 +04:00
John Preston 3e79b67032 Start OpenGL renderer for group calls. 2021-05-24 22:45:16 +04:00
John Preston 748eb9ff12 Remove labels from wide mode buttons. 2021-05-24 22:45:16 +04:00
John Preston 385b98ff3d Nice three-button narrow mode with gradient fading. 2021-05-24 22:45:16 +04:00
John Preston c64e953174 Choose OpenGL / Raster in media viewer. 2021-05-24 22:45:15 +04:00
John Preston a45064257a Choose OpenGL / Raster surface at runtime. 2021-05-24 22:45:15 +04:00
John Preston 445c798bbc Improve pin video button design and controls hiding. 2021-05-24 22:45:15 +04:00
John Preston c48c4d4283 Use QOpenGLWidget on all systems. 2021-05-24 22:45:15 +04:00
John Preston aaea367fba Hide controls when mouse is out of video area. 2021-05-24 22:45:15 +04:00
John Preston b905a18161 Destroy all tgcalls instances before quit. 2021-05-24 22:45:15 +04:00
John Preston f4ae7ecbe7 Remove tracking of video ssrc-s. 2021-05-24 22:45:15 +04:00
John Preston 9a8812d00b Move participants list to the right of the window. 2021-05-24 22:45:15 +04:00
John Preston 13b3de683a Improve narrow participants column design. 2021-05-24 22:45:15 +04:00
John Preston 64243d1437 Fix crash in joining active video chat. 2021-05-24 22:45:15 +04:00
John Preston a730c88491 Add icons and improve narrow participants column. 2021-05-24 22:45:15 +04:00
John Preston 316f0537c4 Implement video pin / controls hiding in video tiles. 2021-05-24 22:45:15 +04:00
John Preston 7f739065e8 First version of tiled layout. 2021-05-24 22:45:15 +04:00
John Preston bd83ed8130 Add 'pin screencast' context menu item. 2021-05-24 22:45:15 +04:00
John Preston e39ffbc83c Update tgcalls, request required video channels. 2021-05-24 22:45:15 +04:00
John Preston 1471e9b8e2 Destroy group call instances async. 2021-05-24 22:45:15 +04:00
John Preston 4c23d51be5 Fix volume icon over video. 2021-05-24 22:45:15 +04:00
John Preston 412cfb24d2 Stop video when rejoining-as, handle errors. 2021-05-24 22:45:15 +04:00
John Preston 2a5977e97f Support enlarge / minimize of video. 2021-05-24 22:45:15 +04:00
John Preston 64c34b7029 Hide controls in wide video mode. 2021-05-24 22:45:15 +04:00
John Preston 0db0abe608 Use LargeVideo in the default mode. 2021-05-24 22:45:15 +04:00
John Preston 5f4903a279 Show controls in the middle of wide video. 2021-05-24 22:45:14 +04:00
John Preston 20ff79abf4 Fix camera / screen self track activation. 2021-05-24 22:45:14 +04:00
John Preston 3a321d64f6 Switch between videos by left click. 2021-05-24 22:45:14 +04:00