mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-30 01:39:20 +00:00
feat(c-wrapper): add an optional parameter CPP_TYPE on L_GET_PRIVATE_FROM_C_OBJECT
This commit is contained in:
parent
6a3956494c
commit
325653641b
2 changed files with 15 additions and 4 deletions
|
|
@ -159,7 +159,7 @@ LinphoneCall *linphone_chat_room_get_call (const LinphoneChatRoom *cr) {
|
|||
|
||||
void linphone_chat_room_set_call (LinphoneChatRoom *cr, LinphoneCall *call) {
|
||||
if (linphone_core_realtime_text_enabled(linphone_chat_room_get_core(cr)))
|
||||
static_cast<LinphonePrivate::RealTimeTextChatRoomPrivate *>(L_GET_PRIVATE_FROM_C_OBJECT(cr))->setCall(call);
|
||||
L_GET_PRIVATE_FROM_C_OBJECT(cr, RealTimeTextChatRoom)->setCall(call);
|
||||
}
|
||||
|
||||
bctbx_list_t *linphone_chat_room_get_transient_messages (const LinphoneChatRoom *cr) {
|
||||
|
|
|
|||
|
|
@ -430,9 +430,12 @@ LINPHONE_END_NAMESPACE
|
|||
|
||||
// Get/set the cpp-ptr of a wrapped C object.
|
||||
#define L_GET_CPP_PTR_FROM_C_OBJECT_1_ARGS(C_OBJECT) \
|
||||
L_GET_CPP_PTR_FROM_C_OBJECT_2_ARGS(C_OBJECT, )
|
||||
LINPHONE_NAMESPACE::Wrapper::getCppPtrFromC(C_OBJECT)
|
||||
#define L_GET_CPP_PTR_FROM_C_OBJECT_2_ARGS(C_OBJECT, CPP_TYPE) \
|
||||
LINPHONE_NAMESPACE::Wrapper::getCppPtrFromC<CPP_TYPE>(C_OBJECT)
|
||||
LINPHONE_NAMESPACE::Wrapper::getCppPtrFromC< \
|
||||
std::remove_pointer<decltype(C_OBJECT)>::type, \
|
||||
LINPHONE_NAMESPACE::CPP_TYPE \
|
||||
>(C_OBJECT)
|
||||
|
||||
#define L_GET_CPP_PTR_FROM_C_OBJECT_MACRO_CHOOSER(...) \
|
||||
L_GET_ARG_3(__VA_ARGS__, L_GET_CPP_PTR_FROM_C_OBJECT_2_ARGS, L_GET_CPP_PTR_FROM_C_OBJECT_1_ARGS)
|
||||
|
|
@ -449,8 +452,16 @@ LINPHONE_END_NAMESPACE
|
|||
LINPHONE_NAMESPACE::Wrapper::getPrivate(LINPHONE_NAMESPACE::Utils::getPtr(CPP_OBJECT))
|
||||
|
||||
// Get the private data of a shared or simple cpp-ptr of a wrapped C object.
|
||||
#define L_GET_PRIVATE_FROM_C_OBJECT(C_OBJECT) \
|
||||
#define L_GET_PRIVATE_FROM_C_OBJECT_1_ARGS(C_OBJECT) \
|
||||
L_GET_PRIVATE(LINPHONE_NAMESPACE::Utils::getPtr(L_GET_CPP_PTR_FROM_C_OBJECT(C_OBJECT)))
|
||||
#define L_GET_PRIVATE_FROM_C_OBJECT_2_ARGS(C_OBJECT, CPP_TYPE) \
|
||||
L_GET_PRIVATE(LINPHONE_NAMESPACE::Utils::getPtr(L_GET_CPP_PTR_FROM_C_OBJECT(C_OBJECT, CPP_TYPE)))
|
||||
|
||||
#define L_GET_PRIVATE_FROM_C_OBJECT_MACRO_CHOOSER(...) \
|
||||
L_GET_ARG_3(__VA_ARGS__, L_GET_PRIVATE_FROM_C_OBJECT_2_ARGS, L_GET_PRIVATE_FROM_C_OBJECT_1_ARGS)
|
||||
|
||||
#define L_GET_PRIVATE_FROM_C_OBJECT(...) \
|
||||
L_GET_PRIVATE_FROM_C_OBJECT_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__)
|
||||
|
||||
// Get the wrapped C object of a C++ object.
|
||||
#define L_GET_C_BACK_PTR(CPP_OBJECT) \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue