VIC.h 785 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (c) 2022, the SerenityOS developers.
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/FixedPoint.h>
  8. #include <AK/Optional.h>
  9. #include <AK/Types.h>
  10. namespace EDID {
  11. class VIC final {
  12. public:
  13. struct Details {
  14. enum class ScanType : u8 {
  15. NonInterlaced,
  16. Interlaced
  17. };
  18. enum class AspectRatio : u8 {
  19. AR_4_3,
  20. AR_16_9,
  21. AR_64_27,
  22. AR_256_135,
  23. };
  24. u8 vic_id;
  25. u16 horizontal_pixels;
  26. u16 vertical_lines;
  27. u32 refresh_rate_millihz;
  28. ScanType scan_type;
  29. AspectRatio aspect_ratio;
  30. FixedPoint<16, u32> refresh_rate_hz() const;
  31. };
  32. static Details const* find_details_by_vic_id(u8);
  33. };
  34. }