Added new rpl events to Media::Player::Instance for stop/start.

Removed unused playerWidgetToggled event.
This commit is contained in:
23rd 2020-07-07 20:28:23 +03:00 committed by John Preston
parent c50df6a6bc
commit ed4b90717a
3 changed files with 22 additions and 8 deletions

View file

@ -559,7 +559,6 @@ bool HandleEvent(not_null<QShortcutEvent*> event) {
void ToggleMediaShortcuts(bool toggled) { void ToggleMediaShortcuts(bool toggled) {
Data.toggleMedia(toggled); Data.toggleMedia(toggled);
Platform::SetWatchingMediaKeys(toggled); Platform::SetWatchingMediaKeys(toggled);
Media::Player::instance()->playerWidgetToggledNotify(toggled);
} }
void ToggleSupportShortcuts(bool toggled) { void ToggleSupportShortcuts(bool toggled) {

View file

@ -388,6 +388,21 @@ rpl::producer<> Media::Player::Instance::playlistChanges(
return data->playlistChanges.events(); return data->playlistChanges.events();
} }
rpl::producer<> Media::Player::Instance::stops(AudioMsgId::Type type) const {
return _playerStopped.events(
) | rpl::filter([=](auto t) {
return t == type;
}) | rpl::to_empty;
}
rpl::producer<> Media::Player::Instance::startsPlay(
AudioMsgId::Type type) const {
return _playerStartedPlay.events(
) | rpl::filter([=](auto t) {
return t == type;
}) | rpl::to_empty;
}
not_null<Instance*> instance() { not_null<Instance*> instance() {
Expects(SingleInstance != nullptr); Expects(SingleInstance != nullptr);
return SingleInstance; return SingleInstance;
@ -426,6 +441,7 @@ void Instance::play(const AudioMsgId &audioId) {
if (document->isVoiceMessage() || document->isVideoMessage()) { if (document->isVoiceMessage() || document->isVideoMessage()) {
document->owner().markMediaRead(document); document->owner().markMediaRead(document);
} }
_playerStartedPlay.fire_copy({audioId.type()});
} }
void Instance::playPause(const AudioMsgId &audioId) { void Instance::playPause(const AudioMsgId &audioId) {
@ -507,6 +523,7 @@ void Instance::stop(AudioMsgId::Type type) {
clearStreamed(data); clearStreamed(data);
} }
data->resumeOnCallEnd = false; data->resumeOnCallEnd = false;
_playerStopped.fire_copy({type});
} }
} }

View file

@ -148,16 +148,13 @@ public:
rpl::producer<> playlistChanges(AudioMsgId::Type type) const; rpl::producer<> playlistChanges(AudioMsgId::Type type) const;
void playerWidgetToggledNotify(bool toggled) {
_playerWidgetToggled.fire_copy({toggled});
}
rpl::producer<bool> playerWidgetToggled() const {
return _playerWidgetToggled.events();
}
rpl::producer<TrackState> updatedNotifier() const { rpl::producer<TrackState> updatedNotifier() const {
return _updatedNotifier.events(); return _updatedNotifier.events();
} }
rpl::producer<> stops(AudioMsgId::Type type) const;
rpl::producer<> startsPlay(AudioMsgId::Type type) const;
bool pauseGifByRoundVideo() const; bool pauseGifByRoundVideo() const;
void documentLoadProgress(DocumentData *document); void documentLoadProgress(DocumentData *document);
@ -268,7 +265,8 @@ private:
base::Observable<AudioMsgId::Type> _trackChangedNotifier; base::Observable<AudioMsgId::Type> _trackChangedNotifier;
base::Observable<AudioMsgId::Type> _repeatChangedNotifier; base::Observable<AudioMsgId::Type> _repeatChangedNotifier;
rpl::event_stream<bool> _playerWidgetToggled; rpl::event_stream<AudioMsgId::Type> _playerStopped;
rpl::event_stream<AudioMsgId::Type> _playerStartedPlay;
rpl::event_stream<TrackState> _updatedNotifier; rpl::event_stream<TrackState> _updatedNotifier;
rpl::lifetime _lifetime; rpl::lifetime _lifetime;