|
71 | 71 | #define MOD_NAME "[drm] " |
72 | 72 |
|
73 | 73 | namespace{ |
74 | | - struct frame_deleter{ void operator()(video_frame *f){ vf_free(f); } }; |
75 | | - using frame_uniq = std::unique_ptr<video_frame, frame_deleter>; |
76 | | - |
77 | | - struct drm_connector_deleter{ void operator()(drmModeConnectorPtr c) { drmModeFreeConnector(c); } }; |
78 | | - using Drm_connector_uniq = std::unique_ptr<drmModeConnector, drm_connector_deleter>; |
79 | | - |
80 | | - struct drm_resources_deleter{ void operator()(drmModeResPtr r) { drmModeFreeResources(r); } }; |
81 | | - using Drm_res_uniq = std::unique_ptr<drmModeRes, drm_resources_deleter>; |
82 | | - |
83 | | - struct drm_encoder_deleter{ void operator()(drmModeEncoderPtr e) { drmModeFreeEncoder(e); } }; |
84 | | - using Drm_encoder_uniq = std::unique_ptr<drmModeEncoder, drm_encoder_deleter>; |
85 | | - |
86 | | - struct drm_crtc_deleter{ void operator()(drmModeCrtcPtr c) { drmModeFreeCrtc(c); } }; |
87 | | - using Drm_crtc_uniq = std::unique_ptr<drmModeCrtc, drm_crtc_deleter>; |
88 | | - |
89 | | - struct drm_plane_res_deleter{ void operator()(drmModePlaneResPtr r) { drmModeFreePlaneResources(r); } }; |
90 | | - using Drm_plane_res_uniq = std::unique_ptr<drmModePlaneRes, drm_plane_res_deleter>; |
91 | | - |
92 | | - struct drm_plane_deleter{ void operator()(drmModePlanePtr p) { drmModeFreePlane(p); } }; |
93 | | - using Drm_plane_uniq = std::unique_ptr<drmModePlane, drm_plane_deleter>; |
94 | | - |
95 | | - struct drm_obj_props_deleter{ void operator()(drmModeObjectPropertiesPtr p) { drmModeFreeObjectProperties(p); } }; |
96 | | - using Drm_object_properties_uniq = std::unique_ptr<drmModeObjectProperties, drm_obj_props_deleter>; |
97 | | - |
98 | | - struct drm_prop_deleter{ void operator()(drmModePropertyPtr p) { drmModeFreeProperty(p); } }; |
99 | | - using Drm_property_uniq = std::unique_ptr<drmModePropertyRes, drm_prop_deleter>; |
| 74 | + using frame_uniq = std::unique_ptr<video_frame, deleter_from_fcn<vf_free>>; |
| 75 | + using Drm_connector_uniq = std::unique_ptr<drmModeConnector, deleter_from_fcn<drmModeFreeConnector>>; |
| 76 | + using Drm_res_uniq = std::unique_ptr<drmModeRes, deleter_from_fcn<drmModeFreeResources>>; |
| 77 | + using Drm_encoder_uniq = std::unique_ptr<drmModeEncoder, deleter_from_fcn<drmModeFreeEncoder>>; |
| 78 | + using Drm_crtc_uniq = std::unique_ptr<drmModeCrtc, deleter_from_fcn<drmModeFreeCrtc>>; |
| 79 | + using Drm_plane_res_uniq = std::unique_ptr<drmModePlaneRes, deleter_from_fcn<drmModeFreePlaneResources>>; |
| 80 | + using Drm_plane_uniq = std::unique_ptr<drmModePlane, deleter_from_fcn<drmModeFreePlane>>; |
| 81 | + using Drm_object_properties_uniq = std::unique_ptr<drmModeObjectProperties, deleter_from_fcn<drmModeFreeObjectProperties>>; |
| 82 | + using Drm_property_uniq = std::unique_ptr<drmModePropertyRes, deleter_from_fcn<drmModeFreeProperty>>; |
100 | 83 |
|
101 | 84 | class Fd_uniq{ |
102 | 85 | public: |
|
0 commit comments