2025-09-25 17:15:13 -03:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2025, Gregory Bertilson <gregory@ladybird.org>
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2026-04-25 22:51:09 -03:00
|
|
|
#include "MediaTimeProvider.h"
|
2025-09-25 17:15:13 -03:00
|
|
|
|
|
|
|
|
namespace Media {
|
|
|
|
|
|
|
|
|
|
class GenericTimeProvider final : public MediaTimeProvider {
|
|
|
|
|
public:
|
|
|
|
|
GenericTimeProvider();
|
|
|
|
|
virtual ~GenericTimeProvider() override;
|
|
|
|
|
|
|
|
|
|
virtual AK::Duration current_time() const override;
|
|
|
|
|
virtual void resume() override;
|
|
|
|
|
virtual void pause() override;
|
2026-04-26 16:59:19 -03:00
|
|
|
virtual void seek(AK::Duration) override;
|
2026-06-03 08:37:23 -03:00
|
|
|
virtual void set_playback_rate(float) override;
|
2025-09-25 17:15:13 -03:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Optional<MonotonicTime> m_monotonic_time_on_resume;
|
|
|
|
|
AK::Duration m_media_time;
|
2026-06-03 08:37:23 -03:00
|
|
|
float m_playback_rate { 1.0f };
|
2025-09-25 17:15:13 -03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|