Commit Graph

65 Commits

Author SHA1 Message Date
John Preston c063d94aa5 Remove DocumentData::actionOnLoad. Fix GIF open. 2019-03-11 19:07:35 +04:00
John Preston 71b733a018 Display receivedTill in video player controls. 2019-03-11 12:08:13 +04:00
John Preston 8171828c2a Fix build on GCC. 2019-03-11 12:08:09 +04:00
John Preston fde8dd9607 Play streaming audio in player. 2019-03-11 12:08:08 +04:00
John Preston f1e0cd6c1d Play streaming video in mediaview. 2019-03-11 11:52:11 +04:00
John Preston d37b65e624 If stuck wait for three seconds of packets. 2019-03-11 11:49:54 +04:00
John Preston 93c548c013 Support streaming speed changing. 2019-03-11 11:49:53 +04:00
John Preston fe618bd652 Use crl::time/now instead of TimeMs/getms. 2019-02-19 11:06:33 +04:00
John Preston 032694ad9e Move files to media/audio and media/clip. 2019-02-13 15:41:33 +03:00
John Preston 3bd0efa91e Use 1.7x instead of 2x in voice messages. 2018-12-03 19:33:34 +04:00
John Preston 2d05281ba9 Add configuration for OpenAL effects usage. 2018-11-09 16:28:15 +04:00
John Preston 346cb4e203 Fix some bugs in double playback speed.
- Apply double speed for all voice tracks, not only for the current.
- Use dedicated atomic in Mixer for the voice speed (fix race).
- Store the playback speed in user settings, not in global settings.
- Use float64 for setting (just consistency, no float-s right now).
2018-11-08 17:06:22 +04:00
Magnus Groß de8518a112 Implement double playback speed
This adds double playback speed for both voice messages and round video
messages.
The 2x playback speed setting is global and is saved in local storage.

Fixes #4907
2018-11-08 17:05:34 +04:00
John Preston dd81f5d59f Replace base::lambda with shorter term.
base::lambda -> Fn (type alias for std::function).
base::lambda_once -> FnMut (type alias for base::unique_function).
base::lambda_guarded -> crl::guard.
base::lambda_call_type_t -> crl::deduced_call_type.
2018-06-04 18:38:27 +03:00
John Preston 87d6081408 Version 1.2.16: Fix build in Xcode 9.3. 2018-04-07 12:47:08 +04:00
John Preston 8bacc74d8b Request dialog list entries when needed.
Also save the original server-side int32 date in HistoryItems.
2018-02-08 12:20:54 +03:00
John Preston bee474f6e9 Remove history_item and layout from pch.
Also move some code to separate modules.
Also create history item views by Window::Controller.
2018-02-08 12:20:47 +03:00
John Preston ea7441ae77 Use single LEGAL file with license and copyright. 2018-01-03 13:23:14 +03:00
John Preston 8b69e6ab99 Rename some methods in DocumentData.
Also fix voice message mark as read when autoplaying after previous.
Also show play icon and don't show playlist for audio files that do
not have shared music files attributes but have audio file mime type.
2017-12-10 14:28:04 +04:00
John Preston 4ef3de5287 Always specify seek position in TimeMs.
This way it won't rely on the sample rate of the audio file.

Fixes #4139.
2017-12-10 12:52:38 +04:00
John Preston 9bbcbd4bb3 Remove all legacy media overview code. 2017-12-08 22:34:26 +04:00
John Preston aec496d520 Remove RTL Override symbols from filenames. 2017-11-16 07:59:09 +04:00
John Preston d1687ab963 Improve info wrapping in section / layer.
Also move layerwidget to window/layer_widget.
Also replace ui/effects/widget_fade_wrap with ui/wrap/fade_wrap.
2017-11-16 07:59:05 +04:00
John Preston ffc20e4492 Divide structs into several data/ modules. 2017-11-16 07:59:04 +04:00
John Preston c302219f9e Use rpl in some widgets and effects. 2017-11-16 07:59:02 +04:00
John Preston da0d78135d Some refactoring in working with text entities.
Also move this code to TextUtilities namespace.
2017-07-06 14:37:42 +03:00
John Preston 110e7c8074 Finalize rename / move. 2017-06-29 11:39:38 +03:00
John Preston 66662e02a6 Fix crash in video player seeking.
Regression was introduced in 87ff770020.

Seek handler may destroy controller so first the playback is updated.
2017-05-31 11:58:43 +03:00
John Preston ee6d80673a Snap floating player to column and corner. 2017-05-24 16:25:17 +03:00
John Preston b7550f63c9 Add a floating player for round video messages. 2017-05-24 16:25:15 +03:00
John Preston 9332032839 Click on media player goes to voice/video message. 2017-05-24 16:25:12 +03:00
John Preston 7873cb4373 Using media player for voice / video messages.
Media::Player::Widget displays the current voice / video message
if it is played and the current song otherwise.

It is created when a voice / video message starts and is destroyed
when all the voice / video messages in the playlist are finished.
2017-05-24 16:25:12 +03:00
John Preston 611a3e2f8a Handle voice playlist in Media::Player::Instance.
This allows video and voice messages to autoplay one after another.
2017-05-24 16:25:09 +03:00
John Preston b9119e5ef6 Play video messages as Type::Voice.
Use AudioMsgId instead of videoPlayId.
Any audio track now can be a child loader track of some video clip.
Use Type::Voice instead of Type::Video for round video messages.
Video messages play / pause / resume the same way as voice messages.
2017-05-24 16:25:09 +03:00
John Preston 87ff770020 Make Media::Clip::Playback independent of slider.
Now animation of the playback progress is processed inside the
Media::Clip::Playback and the sliders just hold plain float64 value.
2017-05-24 16:25:06 +03:00
John Preston 565b56fb5f Pause all media if a call is created.
Pause video, voice messages, songs and stop video messages.
2017-05-12 20:44:18 +03:00
John Preston 2e816f2a67 Play notification sound using Media::Audio::Track. 2017-05-09 23:46:30 +03:00
John Preston e8a3535c74 Support audio documents playback inside app.
Also add some more decoders in ffmpeg configuration (wav).
Also stop audio device restart on PKEY_AudioEndpoint changes.
Also deduce channel layout from channel count in ffmpeg loaders.
2017-04-30 14:34:23 +03:00
John Preston 08167a6a91 Removed #include "stdafx.h" from all files.
Currently the build without implicitly included precompiled header
is not supported anyway (because Qt MOC source files do not include
stdafx.h, they include plain headers).

So when we decide to support building without implicitly included
precompiled headers we'll have to fix all the headers anyway.
2017-03-04 12:27:52 +03:00
John Preston ffc557a0f9 Using standard library instead of std_ namespace.
Currently tested only in VS2015.
2017-02-21 16:45:56 +03:00
John Preston 25583fa813 Replace T_WIDGET macro with a template base class. 2017-02-11 14:24:37 +03:00
John Preston 61b55706ae Alpha 1.0.9: crash fix in video playback.
Media::Player::Instance started to notify about all sound
playback updates, even for video files (which do not have
DocumentData filled in), while Media::Player widgets were
relying on the existance of DocumentData in each update.
2017-02-11 11:00:21 +03:00
John Preston e922e5be39 Alpha 1.0.8: seek in voice messages (by waveform). 2017-02-11 01:37:37 +03:00
John Preston 4964b8b488 Beta 1000002001: Recreate audio device when no output or device changes. 2017-01-25 08:45:09 +03:00
John Preston 6ae68b337d Audio capture moved to a separate module. 2017-01-25 00:25:21 +03:00
John Preston 7fb1463c43 Version 1.0 stable: bump copyright date to 2017. 2017-01-11 23:02:13 +04:00
John Preston ef927c8465 Theme preview ready.
Also style::color is now copyable, constructed only inside a palette.
Also macOS setup new background ready.
2016-12-30 17:53:05 +04:00
John Preston eb4d2a38b6 Closed beta 10020003: All colors moved to palette, some bug fixes. 2016-12-30 17:53:02 +04:00
John Preston 2436ad74bd Boxes redesigned. Common groups moved to Shared Media.
Also transparent images sending fixed.
2016-12-30 17:52:56 +04:00
John Preston 06ed7b8eaf Some more ripple animations. Now only anim::value (float64).
Also each FloatAnimation now stops MTP responses.
Also slide animations done by FloatAnimation.
Closed beta 10019012.
2016-12-30 17:52:46 +04:00