Changeset View
Changeset View
Standalone View
Standalone View
src/client/outputdevice.cpp
Show First 20 Lines • Show All 42 Lines • ▼ Show 20 Line(s) | |||||
43 | public: | 43 | public: | ||
44 | Private(OutputDevice *q); | 44 | Private(OutputDevice *q); | ||
45 | void setup(org_kde_kwin_outputdevice *o); | 45 | void setup(org_kde_kwin_outputdevice *o); | ||
46 | 46 | | |||
47 | WaylandPointer<org_kde_kwin_outputdevice, org_kde_kwin_outputdevice_destroy> output; | 47 | WaylandPointer<org_kde_kwin_outputdevice, org_kde_kwin_outputdevice_destroy> output; | ||
48 | EventQueue *queue = nullptr; | 48 | EventQueue *queue = nullptr; | ||
49 | QSize physicalSize; | 49 | QSize physicalSize; | ||
50 | QPoint globalPosition; | 50 | QPoint globalPosition; | ||
51 | QSizeF logicalSize = QSizeF(); | ||||
51 | QString manufacturer; | 52 | QString manufacturer; | ||
52 | QString model; | 53 | QString model; | ||
53 | qreal scale = 1.0; | 54 | qreal scale = 1.0; | ||
54 | QString serialNumber; | 55 | QString serialNumber; | ||
55 | QString eisaId; | 56 | QString eisaId; | ||
56 | SubPixel subPixel = SubPixel::Unknown; | 57 | SubPixel subPixel = SubPixel::Unknown; | ||
57 | Transform transform = Transform::Normal; | 58 | Transform transform = Transform::Normal; | ||
58 | Modes modes; | 59 | Modes modes; | ||
Show All 20 Lines | 70 | private: | |||
79 | static void enabledCallback(void *data, org_kde_kwin_outputdevice *output, int32_t enabled); | 80 | static void enabledCallback(void *data, org_kde_kwin_outputdevice *output, int32_t enabled); | ||
80 | static void uuidCallback(void *data, org_kde_kwin_outputdevice *output, const char *uuid); | 81 | static void uuidCallback(void *data, org_kde_kwin_outputdevice *output, const char *uuid); | ||
81 | 82 | | |||
82 | static void colorcurvesCallback(void *data, org_kde_kwin_outputdevice *output, | 83 | static void colorcurvesCallback(void *data, org_kde_kwin_outputdevice *output, | ||
83 | wl_array *red, wl_array *green, wl_array *blue); | 84 | wl_array *red, wl_array *green, wl_array *blue); | ||
84 | 85 | | |||
85 | static void serialNumberCallback(void *data, org_kde_kwin_outputdevice *output, const char *serialNumber); | 86 | static void serialNumberCallback(void *data, org_kde_kwin_outputdevice *output, const char *serialNumber); | ||
86 | static void eisaIdCallback(void *data, org_kde_kwin_outputdevice *output, const char *eisa); | 87 | static void eisaIdCallback(void *data, org_kde_kwin_outputdevice *output, const char *eisa); | ||
88 | static void logicalSizeCallback(void *data, org_kde_kwin_outputdevice *output, | ||||
89 | wl_fixed_t width, wl_fixed_t height); | ||||
87 | 90 | | |||
88 | void setPhysicalSize(const QSize &size); | 91 | void setPhysicalSize(const QSize &size); | ||
89 | void setGlobalPosition(const QPoint &pos); | 92 | void setGlobalPosition(const QPoint &pos); | ||
93 | void setLogicalSize(const QSizeF &size); | ||||
90 | void setManufacturer(const QString &manufacturer); | 94 | void setManufacturer(const QString &manufacturer); | ||
91 | void setModel(const QString &model); | 95 | void setModel(const QString &model); | ||
92 | void setScale(qreal scale); | 96 | void setScale(qreal scale); | ||
93 | void setSerialNumber(const QString &serialNumber); | 97 | void setSerialNumber(const QString &serialNumber); | ||
94 | void setEisaId(const QString &eisaId); | 98 | void setEisaId(const QString &eisaId); | ||
95 | void setSubPixel(SubPixel subPixel); | 99 | void setSubPixel(SubPixel subPixel); | ||
96 | void setTransform(Transform transform); | 100 | void setTransform(Transform transform); | ||
97 | void addMode(uint32_t flags, int32_t width, int32_t height, int32_t refresh, int32_t mode_id); | 101 | void addMode(uint32_t flags, int32_t width, int32_t height, int32_t refresh, int32_t mode_id); | ||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Line(s) | 147 | org_kde_kwin_outputdevice_listener OutputDevice::Private::s_outputListener = { | |||
146 | doneCallback, | 150 | doneCallback, | ||
147 | scaleCallback, | 151 | scaleCallback, | ||
148 | edidCallback, | 152 | edidCallback, | ||
149 | enabledCallback, | 153 | enabledCallback, | ||
150 | uuidCallback, | 154 | uuidCallback, | ||
151 | scaleFCallback, | 155 | scaleFCallback, | ||
152 | colorcurvesCallback, | 156 | colorcurvesCallback, | ||
153 | serialNumberCallback, | 157 | serialNumberCallback, | ||
154 | eisaIdCallback | 158 | eisaIdCallback, | ||
159 | logicalSizeCallback | ||||
155 | }; | 160 | }; | ||
156 | 161 | | |||
157 | void OutputDevice::Private::geometryCallback(void *data, org_kde_kwin_outputdevice *output, | 162 | void OutputDevice::Private::geometryCallback(void *data, org_kde_kwin_outputdevice *output, | ||
158 | int32_t x, int32_t y, | 163 | int32_t x, int32_t y, | ||
159 | int32_t physicalWidth, int32_t physicalHeight, | 164 | int32_t physicalWidth, int32_t physicalHeight, | ||
160 | int32_t subPixel, const char *make, const char *model, int32_t transform) | 165 | int32_t subPixel, const char *make, const char *model, int32_t transform) | ||
161 | { | 166 | { | ||
162 | Q_UNUSED(transform) | 167 | Q_UNUSED(transform) | ||
▲ Show 20 Lines • Show All 145 Lines • ▼ Show 20 Line(s) | 312 | if (o->enabled != _enabled) { | |||
308 | o->enabled = _enabled; | 313 | o->enabled = _enabled; | ||
309 | emit o->q->enabledChanged(o->enabled); | 314 | emit o->q->enabledChanged(o->enabled); | ||
310 | if (o->done) { | 315 | if (o->done) { | ||
311 | emit o->q->changed(); | 316 | emit o->q->changed(); | ||
312 | } | 317 | } | ||
313 | } | 318 | } | ||
314 | } | 319 | } | ||
315 | 320 | | |||
321 | void OutputDevice::Private::logicalSizeCallback(void *data, org_kde_kwin_outputdevice *output, | ||||
322 | wl_fixed_t width, wl_fixed_t height) | ||||
323 | { | ||||
324 | auto o = reinterpret_cast<OutputDevice::Private*>(data); | ||||
325 | Q_ASSERT(o->output == output); | ||||
326 | o->setLogicalSize(QSizeF(wl_fixed_to_double(width), wl_fixed_to_double(height))); | ||||
327 | } | ||||
328 | | ||||
316 | void OutputDevice::Private::uuidCallback(void* data, org_kde_kwin_outputdevice* output, const char *uuid) | 329 | void OutputDevice::Private::uuidCallback(void* data, org_kde_kwin_outputdevice* output, const char *uuid) | ||
317 | { | 330 | { | ||
318 | Q_UNUSED(output); | 331 | Q_UNUSED(output); | ||
319 | auto o = reinterpret_cast<OutputDevice::Private*>(data); | 332 | auto o = reinterpret_cast<OutputDevice::Private*>(data); | ||
320 | if (o->uuid != uuid) { | 333 | if (o->uuid != uuid) { | ||
321 | o->uuid = uuid; | 334 | o->uuid = uuid; | ||
322 | emit o->q->uuidChanged(o->uuid); | 335 | emit o->q->uuidChanged(o->uuid); | ||
323 | if (o->done) { | 336 | if (o->done) { | ||
▲ Show 20 Lines • Show All 88 Lines • ▼ Show 20 Line(s) | 424 | { | |||
412 | physicalSize = size; | 425 | physicalSize = size; | ||
413 | } | 426 | } | ||
414 | 427 | | |||
415 | void OutputDevice::Private::setScale(qreal s) | 428 | void OutputDevice::Private::setScale(qreal s) | ||
416 | { | 429 | { | ||
417 | scale = s; | 430 | scale = s; | ||
418 | } | 431 | } | ||
419 | 432 | | |||
433 | void OutputDevice::Private::setLogicalSize(const QSizeF &size) | ||||
434 | { | ||||
435 | logicalSize = size; | ||||
436 | } | ||||
437 | | ||||
420 | QRect OutputDevice::geometry() const | 438 | QRect OutputDevice::geometry() const | ||
421 | { | 439 | { | ||
422 | if (d->currentMode == d->modes.end()) { | 440 | if (d->currentMode == d->modes.end()) { | ||
423 | return QRect(); | 441 | return QRect(); | ||
424 | } | 442 | } | ||
425 | return QRect(d->globalPosition, pixelSize()); | 443 | return QRect(d->globalPosition, pixelSize()); | ||
426 | } | 444 | } | ||
427 | 445 | | |||
▲ Show 20 Lines • Show All 112 Lines • ▼ Show 20 Line(s) | 557 | { | |||
540 | return d->uuid; | 558 | return d->uuid; | ||
541 | } | 559 | } | ||
542 | 560 | | |||
543 | OutputDevice::ColorCurves OutputDevice::colorCurves() const | 561 | OutputDevice::ColorCurves OutputDevice::colorCurves() const | ||
544 | { | 562 | { | ||
545 | return d->colorCurves; | 563 | return d->colorCurves; | ||
546 | } | 564 | } | ||
547 | 565 | | |||
566 | QSizeF OutputDevice::logicalSize() const | ||||
567 | { | ||||
568 | return d->logicalSize; | ||||
569 | } | ||||
570 | | ||||
548 | void OutputDevice::destroy() | 571 | void OutputDevice::destroy() | ||
549 | { | 572 | { | ||
550 | d->output.destroy(); | 573 | d->output.destroy(); | ||
551 | 574 | | |||
552 | } | 575 | } | ||
553 | 576 | | |||
554 | } | 577 | } | ||
555 | } | 578 | } |