11// Copyright (c) 2022 DisplayLink (UK) Ltd.
2+ #include < format>
3+
24#include " ../library/evdi_lib.h"
3- #include < pybind11/pybind11.h>
4- #include " Card.h"
55#include " Buffer.h"
6+ #include " Card.h"
67
78namespace py = pybind11;
89
@@ -24,8 +25,8 @@ void card_C_mode_handler(struct evdi_mode mode, void *user_data)
2425 card->setMode (mode);
2526 card->makeBuffers (2 );
2627
27- if (card->m_modeHandler != nullptr ) {
28- card->m_modeHandler (mode);
28+ if (! card->mode_handler . is_none () ) {
29+ card->mode_handler (mode);
2930 }
3031
3132 card->request_update ();
@@ -53,23 +54,19 @@ void Card::clearBuffers()
5354void dpms_handler (int dpms_mode, void * /* user_data*/ )
5455{
5556 py::module logging = py::module::import (" logging" );
56- logging.attr (" info" )(" Got dpms signal. " + std::to_string ( dpms_mode));
57+ logging.attr (" info" )(std::format ( " Got dpms signal: \" {} \" " , dpms_mode));
5758}
5859
5960Card::Card (int device)
6061 : evdiHandle(evdi_open(device))
6162{
6263 if (evdiHandle == nullptr ) {
63- throw py::value_error (" Card /dev/dri/card" +
64- std::to_string (device) +
65- " does not exists!" );
64+ throw py::value_error (std::format (
65+ " Failed to open card \" /dev/dri/card{}\" " , device));
6666 }
6767
6868 memset (&eventContext, 0 , sizeof (eventContext));
6969
70- m_modeHandler = nullptr ;
71- acquire_framebuffer_cb = nullptr ;
72-
7370 eventContext.mode_changed_handler = &card_C_mode_handler;
7471 eventContext.update_ready_handler = &default_update_ready_handler;
7572 eventContext.dpms_handler = dpms_handler;
@@ -161,8 +158,8 @@ void Card::grab_pixels()
161158 evdi_grab_pixels (evdiHandle, buffer_requested->buffer .rects ,
162159 &buffer_requested->buffer .rect_count );
163160
164- if (acquire_framebuffer_cb )
165- acquire_framebuffer_cb (std::move (buffer_requested));
161+ if (acquire_framebuffer_handler )
162+ acquire_framebuffer_handler (std::move (buffer_requested));
166163 buffer_requested = nullptr ;
167164
168165 request_update ();
0 commit comments