summaryrefslogtreecommitdiffstats
path: root/src/modules/display/option.h
blob: 1ae73a406dc5d0de13a7eabb57d8f63e3b9f576b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include "common/option.h"

typedef enum FF_A_PACKED FFDisplayCompactType {
    FF_DISPLAY_COMPACT_TYPE_NONE = 0,
    FF_DISPLAY_COMPACT_TYPE_ORIGINAL_BIT = 1 << 0,
    FF_DISPLAY_COMPACT_TYPE_SCALED_BIT = 1 << 1,
    FF_DISPLAY_COMPACT_TYPE_REFRESH_RATE_BIT = 1 << 2,
    FF_DISPLAY_COMPACT_TYPE_UNSIGNED = UINT8_MAX,
} FFDisplayCompactType;

typedef enum FF_A_PACKED FFDisplayOrder {
    FF_DISPLAY_ORDER_NONE,
    FF_DISPLAY_ORDER_ASC,
    FF_DISPLAY_ORDER_DESC,
} FFDisplayOrder;

typedef struct FFDisplayOptions {
    FFModuleArgs moduleArgs;

    FFDisplayCompactType compactType;
    bool preciseRefreshRate;
    FFDisplayOrder order;
} FFDisplayOptions;

static_assert(sizeof(FFDisplayOptions) <= FF_OPTION_MAX_SIZE, "FFDisplayOptions size exceeds maximum allowed size");