mirror of
https://gitlab.freedesktop.org/emersion/libdisplay-info.git
synced 2024-12-25 21:59:08 +01:00
36 lines
668 B
C
36 lines
668 B
C
|
#include <errno.h>
|
||
|
|
||
|
#include "bits.h"
|
||
|
#include "displayid.h"
|
||
|
|
||
|
bool
|
||
|
_di_displayid_parse(struct di_displayid *displayid, const uint8_t *data,
|
||
|
size_t size, struct di_logger *logger)
|
||
|
{
|
||
|
if (size < 5) {
|
||
|
errno = EINVAL;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
displayid->version = get_bit_range(data[0x00], 7, 4);
|
||
|
displayid->revision = get_bit_range(data[0x00], 3, 0);
|
||
|
if (displayid->version == 0 || displayid->version > 1) {
|
||
|
errno = ENOTSUP;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
int
|
||
|
di_displayid_get_version(const struct di_displayid *displayid)
|
||
|
{
|
||
|
return displayid->version;
|
||
|
}
|
||
|
|
||
|
int
|
||
|
di_displayid_get_revision(const struct di_displayid *displayid)
|
||
|
{
|
||
|
return displayid->revision;
|
||
|
}
|