99#include <string.h>
1010
1111#include <fcntl.h>
12+ #include <pthread.h>
1213#include <sys/mman.h>
1314#include <unistd.h>
14- #include <pthread.h>
1515
16+ #include <libudev.h>
1617#include <sys/epoll.h>
1718#include <sys/ioctl.h>
1819#include <xf86drm.h>
1920#include <xf86drmMode.h>
20- #include <libudev.h>
2121
22- #include "pixel_format.h"
2322#include "monitor.h"
23+ #include "pixel_format.h"
2424#include "util/bitset.h"
2525#include "util/list.h"
2626#include "util/lock_ops.h"
2727#include "util/logging.h"
2828#include "util/macros.h"
2929#include "util/refcounting.h"
3030
31-
3231#define DRM_ID_NONE ((uint32_t) 0xFFFFFFFF)
3332
3433#define DRM_ID_IS_VALID (id ) ((id) != 0 && (id) != DRM_ID_NONE)
@@ -401,10 +400,10 @@ enum drm_encoder_type {
401400
402401struct drm_encoder {
403402 uint32_t id ;
404- enum drm_encoder_type type ;
405-
406- uint32_t possible_crtcs ;
407- uint32_t possible_clones ;
403+ enum drm_encoder_type type ;
404+
405+ uint32_t possible_crtcs ;
406+ uint32_t possible_clones ;
408407
409408 struct {
410409 uint32_t crtc_id ;
@@ -646,7 +645,7 @@ struct drm_resources {
646645 } filter ;
647646
648647 uint32_t min_width , max_width ;
649- uint32_t min_height , max_height ;
648+ uint32_t min_height , max_height ;
650649
651650 size_t n_connectors ;
652651 struct drm_connector * connectors ;
@@ -676,15 +675,28 @@ bool drm_plane_supports_unmodified_format(struct drm_plane *plane, enum pixfmt f
676675
677676bool drm_resources_any_crtc_plane_supports_format (struct drm_resources * res , uint32_t crtc_id , enum pixfmt pixel_format );
678677
679-
680678/**
681679 * @brief Create a new drm_resources object
682680 */
683681struct drm_resources * drm_resources_new (int drm_fd );
684682
685- struct drm_resources * drm_resources_new_filtered (int drm_fd , uint32_t connector_id , uint32_t encoder_id , uint32_t crtc_id , size_t n_planes , const uint32_t * plane_ids );
683+ struct drm_resources * drm_resources_new_filtered (
684+ int drm_fd ,
685+ uint32_t connector_id ,
686+ uint32_t encoder_id ,
687+ uint32_t crtc_id ,
688+ size_t n_planes ,
689+ const uint32_t * plane_ids
690+ );
686691
687- struct drm_resources * drm_resources_dup_filtered (struct drm_resources * res , uint32_t connector_id , uint32_t encoder_id , uint32_t crtc_id , size_t n_planes , const uint32_t * plane_ids );
692+ struct drm_resources * drm_resources_dup_filtered (
693+ struct drm_resources * res ,
694+ uint32_t connector_id ,
695+ uint32_t encoder_id ,
696+ uint32_t crtc_id ,
697+ size_t n_planes ,
698+ const uint32_t * plane_ids
699+ );
688700
689701void drm_resources_destroy (struct drm_resources * r );
690702
@@ -713,7 +725,6 @@ int drm_resources_update(struct drm_resources *r, int drm_fd, const struct drm_u
713725 */
714726void drm_resources_apply_rockchip_workaround (struct drm_resources * r );
715727
716-
717728bool drm_resources_has_connector (struct drm_resources * r , uint32_t connector_id );
718729
719730struct drm_connector * drm_resources_get_connector (struct drm_resources * r , uint32_t connector_id );
@@ -736,57 +747,55 @@ struct drm_plane *drm_resources_get_plane(struct drm_resources *r, uint32_t plan
736747
737748unsigned int drm_resources_get_plane_index (struct drm_resources * r , uint32_t plane_id );
738749
739-
740750struct drm_connector * drm_resources_connector_first (struct drm_resources * r );
741751
742752struct drm_connector * drm_resources_connector_end (struct drm_resources * r );
743753
744754struct drm_connector * drm_resources_connector_next (struct drm_resources * r , struct drm_connector * current );
745755
746-
747756drmModeModeInfo * drm_connector_mode_first (struct drm_connector * c );
748757
749758drmModeModeInfo * drm_connector_mode_end (struct drm_connector * c );
750759
751760drmModeModeInfo * drm_connector_mode_next (struct drm_connector * c , drmModeModeInfo * current );
752761
753-
754762struct drm_encoder * drm_resources_encoder_first (struct drm_resources * r );
755763
756764struct drm_encoder * drm_resources_encoder_end (struct drm_resources * r );
757765
758766struct drm_encoder * drm_resources_encoder_next (struct drm_resources * r , struct drm_encoder * current );
759767
760-
761768struct drm_crtc * drm_resources_crtc_first (struct drm_resources * r );
762769
763770struct drm_crtc * drm_resources_crtc_end (struct drm_resources * r );
764771
765772struct drm_crtc * drm_resources_crtc_next (struct drm_resources * r , struct drm_crtc * current );
766773
767-
768774struct drm_plane * drm_resources_plane_first (struct drm_resources * r );
769775
770776struct drm_plane * drm_resources_plane_end (struct drm_resources * r );
771777
772778struct drm_plane * drm_resources_plane_next (struct drm_resources * r , struct drm_plane * current );
773779
780+ #define drm_resources_for_each_connector (res , connector ) \
781+ for (struct drm_connector * (connector) = drm_resources_connector_first(res); (connector) != drm_resources_connector_end(res); \
782+ (connector) = drm_resources_connector_next((res), (connector)))
774783
775- #define drm_resources_for_each_connector (res , connector ) \
776- for (struct drm_connector *(connector) = drm_resources_connector_first(res); (connector) != drm_resources_connector_end(res); (connector) = drm_resources_connector_next((res), (connector)))
777-
778- #define drm_connector_for_each_mode (connector , mode ) \
779- for (drmModeModeInfo *(mode) = drm_connector_mode_first(connector); (mode) != drm_connector_mode_end(connector); (mode) = drm_connector_mode_next((connector), (mode)))
780-
781- #define drm_resources_for_each_encoder (res , encoder ) \
782- for (struct drm_encoder *(encoder) = drm_resources_encoder_first(res); (encoder) != drm_resources_encoder_end(res); (encoder) = drm_resources_encoder_next((res), (encoder)))
784+ #define drm_connector_for_each_mode (connector , mode ) \
785+ for (drmModeModeInfo * (mode) = drm_connector_mode_first(connector); (mode) != drm_connector_mode_end(connector); \
786+ (mode) = drm_connector_mode_next((connector), (mode)))
783787
784- #define drm_resources_for_each_crtc (res , crtc ) \
785- for (struct drm_crtc *(crtc) = drm_resources_crtc_first(res); (crtc) != drm_resources_crtc_end(res); (crtc) = drm_resources_crtc_next((res), (crtc)))
788+ #define drm_resources_for_each_encoder (res , encoder ) \
789+ for (struct drm_encoder * (encoder) = drm_resources_encoder_first(res); (encoder) != drm_resources_encoder_end(res); \
790+ (encoder) = drm_resources_encoder_next((res), (encoder)))
786791
787- #define drm_resources_for_each_plane (res , plane ) \
788- for (struct drm_plane *(plane) = drm_resources_plane_first(res); (plane) != drm_resources_plane_end(res); (plane) = drm_resources_plane_next((res), (plane)))
792+ #define drm_resources_for_each_crtc (res , crtc ) \
793+ for (struct drm_crtc * (crtc) = drm_resources_crtc_first(res); (crtc) != drm_resources_crtc_end(res); \
794+ (crtc) = drm_resources_crtc_next((res), (crtc)))
789795
796+ #define drm_resources_for_each_plane (res , plane ) \
797+ for (struct drm_plane * (plane) = drm_resources_plane_first(res); (plane) != drm_resources_plane_end(res); \
798+ (plane) = drm_resources_plane_next((res), (plane)))
790799
791800struct drm_blob * drm_blob_new_mode (int drm_fd , const drmModeModeInfo * mode , bool dup_fd );
792801
@@ -797,8 +806,8 @@ int drm_blob_get_id(struct drm_blob *blob);
797806/**
798807 * @brief Get the precise refresh rate of a video mode.
799808 */
800- static inline double mode_get_vrefresh (const drmModeModeInfo * mode ) {
801- return mode -> clock * 1000.0 / (mode -> htotal * mode -> vtotal );
809+ static inline float mode_get_vrefresh (const drmModeModeInfo * mode ) {
810+ return mode -> clock * 1000.0f / (mode -> htotal * mode -> vtotal );
802811}
803812
804813#endif
0 commit comments