Add a helper macro for ranged EditIds

This commit is contained in:
Jean Pierre Cimalando 2021-04-02 18:20:18 +02:00
parent 0d8deb1fb9
commit 10b36293b6

View file

@ -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);
}