6#include "protocol_common_i.h"
8typedef void iButtonProtocolGroupData;
9typedef int32_t iButtonProtocolGroupId;
11typedef iButtonProtocolGroupData* (*iButtonProtocolGroupAllocFunc)(void);
13typedef void (*iButtonProtocolGroupFreeFunc)(iButtonProtocolGroupData*);
15typedef void (*iButtonProtocolGroupRenderFunc)(
16 iButtonProtocolGroupData*,
17 const iButtonProtocolData*,
18 iButtonProtocolLocalId,
21typedef bool (*iButtonProtocolGroupIsValidFunc)(
22 iButtonProtocolGroupData*,
23 const iButtonProtocolData*,
24 iButtonProtocolLocalId);
26typedef void (*iButtonProtocolGroupGetDataFunc)(
27 iButtonProtocolGroupData*,
29 iButtonProtocolLocalId,
32typedef void (*iButtonProtocolGroupApplyFunc)(
33 iButtonProtocolGroupData*,
35 iButtonProtocolLocalId);
37typedef size_t (*iButtonProtocolGropuGetSizeFunc)(iButtonProtocolGroupData*);
40 *iButtonProtocolGroupGetFeaturesFunc)(iButtonProtocolGroupData*, iButtonProtocolLocalId);
43 *iButtonProtocolGroupGetStringFunc)(iButtonProtocolGroupData*, iButtonProtocolLocalId);
45typedef bool (*iButtonProtocolGroupGetIdFunc)(
46 iButtonProtocolGroupData*,
47 iButtonProtocolLocalId*,
50typedef bool (*iButtonProtocolGroupReadFunc)(
51 iButtonProtocolGroupData*,
53 iButtonProtocolLocalId*);
55typedef bool (*iButtonProtocolGroupWriteFunc)(
56 iButtonProtocolGroupData*,
58 iButtonProtocolLocalId);
60typedef bool (*iButtonProtocolGroupSaveFunc)(
61 iButtonProtocolGroupData*,
62 const iButtonProtocolData*,
63 iButtonProtocolLocalId,
66typedef bool (*iButtonProtocolGroupLoadFunc)(
67 iButtonProtocolGroupData*,
69 iButtonProtocolLocalId,
74 const uint32_t protocol_count;
76 iButtonProtocolGroupAllocFunc alloc;
77 iButtonProtocolGroupFreeFunc free;
79 iButtonProtocolGropuGetSizeFunc get_max_data_size;
80 iButtonProtocolGroupGetIdFunc get_id_by_name;
81 iButtonProtocolGroupGetFeaturesFunc get_features;
83 iButtonProtocolGroupGetStringFunc get_manufacturer;
84 iButtonProtocolGroupGetStringFunc get_name;
86 iButtonProtocolGroupReadFunc read;
87 iButtonProtocolGroupWriteFunc write_id;
88 iButtonProtocolGroupWriteFunc write_copy;
90 iButtonProtocolGroupApplyFunc emulate_start;
91 iButtonProtocolGroupApplyFunc emulate_stop;
93 iButtonProtocolGroupSaveFunc save;
94 iButtonProtocolGroupLoadFunc load;
96 iButtonProtocolGroupRenderFunc render_uid;
97 iButtonProtocolGroupRenderFunc render_data;
98 iButtonProtocolGroupRenderFunc render_brief_data;
99 iButtonProtocolGroupRenderFunc render_error;
101 iButtonProtocolGroupIsValidFunc is_valid;
102 iButtonProtocolGroupGetDataFunc get_editable_data;
104 iButtonProtocolGroupApplyFunc apply_edits;