HTMLMediaElement.h 935 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (c) 2020, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/HTML/HTMLElement.h>
  8. namespace Web::HTML {
  9. class HTMLMediaElement : public HTMLElement {
  10. WEB_PLATFORM_OBJECT(HTMLMediaElement, HTMLElement);
  11. public:
  12. virtual ~HTMLMediaElement() override;
  13. enum class NetworkState : u16 {
  14. Empty,
  15. Idle,
  16. Loading,
  17. NoSource,
  18. };
  19. NetworkState network_state() const { return m_network_state; }
  20. Bindings::CanPlayTypeResult can_play_type(DeprecatedString const& type) const;
  21. void load() const;
  22. void pause() const;
  23. protected:
  24. HTMLMediaElement(DOM::Document&, DOM::QualifiedName);
  25. virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
  26. private:
  27. // https://html.spec.whatwg.org/multipage/media.html#dom-media-networkstate
  28. NetworkState m_network_state { NetworkState::Empty };
  29. };
  30. }