diff --git a/include/linphone/utils/magic-macros.h b/include/linphone/utils/magic-macros.h index 439dcdf32..7a30256b5 100644 --- a/include/linphone/utils/magic-macros.h +++ b/include/linphone/utils/magic-macros.h @@ -36,13 +36,13 @@ LINPHONE_BEGIN_NAMESPACE A11, A12, A13, A14, A15, A16, N, ... \ ) N -#define L_GET_N_ARGS_HELPER(...) L_ARG_N(__VA_ARGS__) +#define L_EXPAND(X) X -#define L_GET_N_ARGS(...) L_GET_N_ARGS_HELPER( \ +#define L_GET_N_ARGS(...) L_EXPAND(L_ARG_N( \ __VA_ARGS__, \ 16, 15, 14, 13, 12, 11, 10, \ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 \ -) +)) // Get argument numbers - 1 from variadic. #define L_GET_N_ARGS_SUB(X, ...) L_GET_N_ARGS(__VA_ARGS__) @@ -83,8 +83,9 @@ LINPHONE_BEGIN_NAMESPACE #define L_GET_HEAP_15(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, ...) A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15 #define L_GET_HEAP_16(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, ...) A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16 -#define L_GET_HEAP(...) \ - L_CONCAT(L_GET_HEAP_, L_GET_N_ARGS_SUB(__VA_ARGS__)) (__VA_ARGS__) +#define L_GET_HEAP(...) L_EXPAND( \ + L_CONCAT(L_GET_HEAP_, L_GET_N_ARGS_SUB(__VA_ARGS__)) (__VA_ARGS__) \ +) // Call a macro on args. #define L_CALL(MACRO, ARGS) MACRO ARGS diff --git a/src/chat/basic-chat-room.h b/src/chat/basic-chat-room.h index 3bc723387..d7aae693a 100644 --- a/src/chat/basic-chat-room.h +++ b/src/chat/basic-chat-room.h @@ -27,7 +27,7 @@ LINPHONE_BEGIN_NAMESPACE class BasicChatRoomPrivate; -class BasicChatRoom : public ChatRoom { +class LINPHONE_PUBLIC BasicChatRoom : public ChatRoom { public: BasicChatRoom (LinphoneCore *core, const Address &peerAddress); virtual ~BasicChatRoom () = default; diff --git a/src/chat/chat-room.h b/src/chat/chat-room.h index d0e156635..b1c23c7ab 100644 --- a/src/chat/chat-room.h +++ b/src/chat/chat-room.h @@ -19,11 +19,11 @@ #ifndef _CHAT_ROOM_H_ #define _CHAT_ROOM_H_ +#include + // From coreapi #include "private.h" -#include - #include "address/address.h" #include "object/object.h" #include "conference/conference-interface.h" @@ -36,9 +36,9 @@ LINPHONE_BEGIN_NAMESPACE class ChatRoomPrivate; -class ChatRoom : public Object, public ConferenceInterface { +class LINPHONE_PUBLIC ChatRoom : public Object, public ConferenceInterface { friend class ChatMessagePrivate; - + public: L_DECLARE_ENUM(State, L_ENUM_VALUES_CHAT_ROOM_STATE); @@ -76,4 +76,3 @@ private: LINPHONE_END_NAMESPACE #endif // ifndef _CHAT_ROOM_H_ - diff --git a/src/chat/client-group-chat-room.h b/src/chat/client-group-chat-room.h index c795991d5..d5f1c5b1a 100644 --- a/src/chat/client-group-chat-room.h +++ b/src/chat/client-group-chat-room.h @@ -34,7 +34,7 @@ LINPHONE_BEGIN_NAMESPACE class ClientGroupChatRoomPrivate; -class ClientGroupChatRoom : public ChatRoom, public RemoteConference { +class LINPHONE_PUBLIC ClientGroupChatRoom : public ChatRoom, public RemoteConference { public: ClientGroupChatRoom (LinphoneCore *core, const Address &me, const std::string &subject); virtual ~ClientGroupChatRoom () = default; diff --git a/src/chat/real-time-text-chat-room.h b/src/chat/real-time-text-chat-room.h index 117f36dd5..2f3e3f40d 100644 --- a/src/chat/real-time-text-chat-room.h +++ b/src/chat/real-time-text-chat-room.h @@ -32,7 +32,7 @@ LINPHONE_BEGIN_NAMESPACE class RealTimeTextChatRoomPrivate; -class RealTimeTextChatRoom : public ChatRoom { +class LINPHONE_PUBLIC RealTimeTextChatRoom : public ChatRoom { public: RealTimeTextChatRoom (LinphoneCore *core, const Address &peerAddress); virtual ~RealTimeTextChatRoom () = default;