Add a helper macro for ranged EditIds
This commit is contained in:
parent
0d8deb1fb9
commit
10b36293b6
1 changed files with 19 additions and 25 deletions
|
|
@ -48,29 +48,23 @@ struct EditRange {
|
||||||
static EditRange get(EditId id);
|
static EditRange get(EditId id);
|
||||||
};
|
};
|
||||||
|
|
||||||
inline EditId editIdForCC(int cc)
|
#define DEFINE_EDIT_ID_RANGE_HELPERS(type, Type, IdPrefix) \
|
||||||
{
|
inline EditId editIdFor##Type(int value) \
|
||||||
return EditId(int(EditId::Controller0) + cc);
|
{ \
|
||||||
}
|
return EditId(int(EditId::IdPrefix##0) + value); \
|
||||||
inline int ccForEditId(EditId id)
|
} \
|
||||||
{
|
inline int type##ForEditId(EditId id) \
|
||||||
return int(id) - int(EditId::Controller0);
|
{ \
|
||||||
}
|
return int(id) - int(EditId::IdPrefix##0); \
|
||||||
inline bool editIdIsCC(EditId id)
|
} \
|
||||||
{
|
inline bool editIdIs##Type(EditId id) \
|
||||||
return int(id) >= int(EditId::Controller0) &&
|
{ \
|
||||||
int(id) <= int(EditId::ControllerLast);
|
return int(id) >= int(EditId::IdPrefix##0) && \
|
||||||
}
|
int(id) <= int(EditId::IdPrefix##Last); \
|
||||||
|
}
|
||||||
|
|
||||||
inline EditId editIdForKey(int key)
|
// defines editIdForCC, ccForEditId, editIdIsCC, etc..
|
||||||
{
|
DEFINE_EDIT_ID_RANGE_HELPERS(cc, CC, Controller)
|
||||||
return EditId(int(EditId::Key0) + key);
|
DEFINE_EDIT_ID_RANGE_HELPERS(key, Key, Key)
|
||||||
}
|
|
||||||
inline int keyForEditId(EditId id)
|
#undef DEFINE_EDIT_ID_RANGE_HELPERS
|
||||||
{
|
|
||||||
return int(id) - int(EditId::Key0);
|
|
||||||
}
|
|
||||||
inline bool editIdIsKey(EditId id)
|
|
||||||
{
|
|
||||||
return int(id) >= int(EditId::Key0) && int(id) <= int(EditId::KeyLast);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue