*
*/
-#include <dali/integration-api/addon-manager.h>
#include <dali/devel-api/addons/addon-dispatch-table.h>
+#include <dali/integration-api/addon-manager.h>
#include <vector>
namespace Dali
{
namespace AddOns
{
-
/**
* @class AddOnBase
*
class AddOnBase
{
protected:
-
/**
* @brief Constructor
*/
}
public:
-
/**
* @brief Destructor
*/
* @brief Retrieves AddOn info
* @param[out] addonInfo AddOnInfo structure to fill by the function
*/
- virtual void GetAddOnInfo( Dali::AddOnInfo& addonInfo ) = 0;
+ virtual void GetAddOnInfo(Dali::AddOnInfo& addonInfo) = 0;
/**
* @brief Returns a dispatch table for global functions.
* @brief OnStart event.
* It's optional and should be implemented by the AddOn when it's required to handle the event.
*/
- virtual void OnStart() {}
+ virtual void OnStart()
+ {
+ }
/**
* @brief OnResume event.
* It's optional and should be implemented by the AddOn when it's required to handle the event.
*/
- virtual void OnResume() {}
+ virtual void OnResume()
+ {
+ }
/**
* @brief OnPause event.
* It's optional and should be implemented by the AddOn when it's required to handle the event.
*/
- virtual void OnPause() {}
+ virtual void OnPause()
+ {
+ }
/**
* @brief OnStop event.
* It's optional and should be implemented by the AddOn when it's required to handle the event.
*/
- virtual void OnStop() {}
+ virtual void OnStop()
+ {
+ }
/**
* @brief Getter of static singleton
}
private:
-
static AddOnBase* mSingleton;
};
* @param[out] info Reference to AddOnInfo structure
*/
template<class T>
-void GetAddOnInfo( Dali::AddOnInfo& info )
+void GetAddOnInfo(Dali::AddOnInfo& info)
{
auto* addon = Dali::AddOns::AddOnBase::Get();
- addon->GetAddOnInfo( info );
+ addon->GetAddOnInfo(info);
}
/**
* @return Valid pointer or nullptr if function not found.
*/
template<class T>
-void* GetGlobalProc( const char* funcname )
+void* GetGlobalProc(const char* funcname)
{
- if( !funcname )
+ if(!funcname)
{
return nullptr;
}
auto* addon = Dali::AddOns::AddOnBase::Get();
// AddOn must be initialised up to this point!
- if( !addon )
+ if(!addon)
{
return nullptr;
}
static Dali::AddOns::DispatchTable* globalDispatchTable = addon->GetGlobalDispatchTable();
- if( globalDispatchTable )
+ if(globalDispatchTable)
{
- return globalDispatchTable->Find( funcname );
+ return globalDispatchTable->Find(funcname);
}
return nullptr;
}
* @return Valid pointer or nullptr if function not found.
*/
template<class T>
-void* GetInstanceProc( const char* funcname )
+void* GetInstanceProc(const char* funcname)
{
- if( !funcname )
+ if(!funcname)
{
return nullptr;
}
auto* addon = Dali::AddOns::AddOnBase::Get();
// AddOn must be initialised up to this point!
- if( !addon )
+ if(!addon)
{
return nullptr;
}
static Dali::AddOns::DispatchTable* instanceDispatchTable = addon->GetInstanceDispatchTable();
- if( instanceDispatchTable )
+ if(instanceDispatchTable)
{
- return instanceDispatchTable->Find( funcname );
+ return instanceDispatchTable->Find(funcname);
}
return nullptr;
}
auto* addon = Dali::AddOns::CreateAddOn();
Dali::AddOnInfo info{};
- addon->GetAddOnInfo( info );
+ addon->GetAddOnInfo(info);
// Generate dispatch tables
addon->GetGlobalDispatchTable();
// Bind basic functions
Dali::AddOnDispatchTable table;
- table.name = info.name;
- table.GetAddOnInfo = GetAddOnInfo<void>;
- table.GetGlobalProc = GetGlobalProc<void>;
+ table.name = info.name;
+ table.GetAddOnInfo = GetAddOnInfo<void>;
+ table.GetGlobalProc = GetGlobalProc<void>;
table.GetInstanceProc = GetInstanceProc<void>;
- table.OnStart = OnStart<void>;
- table.OnStop = OnStop<void>;
- table.OnResume = OnResume<void>;
- table.OnPause = OnPause<void>;
+ table.OnStart = OnStart<void>;
+ table.OnStop = OnStop<void>;
+ table.OnResume = OnResume<void>;
+ table.OnPause = OnPause<void>;
// Register dispatch table
- Dali::Integration::AddOnManager::Get()->RegisterAddOnDispatchTable( &table );
+ Dali::Integration::AddOnManager::Get()->RegisterAddOnDispatchTable(&table);
}
} // namespace AddOns
* Note: The macro requires GCC/Clang compiler and currently only Linux-based environment
* is supported.
*/
-#define REGISTER_ADDON_CLASS( ADDON_CLASS_WITH_FULL_NAMESPACE ) \
-namespace Dali { namespace AddOns { \
-__attribute__((constructor)) void AddOnConstructor() { \
- AddOnConstructorInternal();\
-}\
-AddOnBase* AddOnBase::mSingleton = nullptr; \
-AddOnBase* CreateAddOn() \
-{\
- return new ADDON_CLASS_WITH_FULL_NAMESPACE();\
-}\
-}}
+#define REGISTER_ADDON_CLASS(ADDON_CLASS_WITH_FULL_NAMESPACE) \
+ namespace Dali \
+ { \
+ namespace AddOns \
+ { \
+ __attribute__((constructor)) void AddOnConstructor() \
+ { \
+ AddOnConstructorInternal(); \
+ } \
+ AddOnBase* AddOnBase::mSingleton = nullptr; \
+ AddOnBase* CreateAddOn() \
+ { \
+ return new ADDON_CLASS_WITH_FULL_NAMESPACE(); \
+ } \
+ } \
+ }
#endif // DALI_ADDON_BASE_H