// Global public functions // // YB ////////////////////////////// #include "StdAfx.h" #include "Others\CTL_Pub.hpp" //External Modules #include "CTL_ErO.hpp" //End of External Modules long CTL_g_lCurrentId = 10000; CString CTL_g_csVersion; CTL_td_p_fn_bControlCanBeDisplayed CTL_g_p_fnDefaultCallBack_ControlCanBeDisplayed = NULL; CTL_td_p_fn_vCallBackWhenDataHasChanged CTL_g_p_fnDefaultCallBack_DataHasChanged = NULL; CTL_td_p_fn_vStaticHasBeenClicked CTL_g_p_fnDefaultCallBack_StaticHasBeenClicked = NULL; CTL_tdp_fn_vGetColor CTL_g_p_fnDefaultCallBack_GetColor = NULL; #ifndef CTL_WITH_NO_TUT //For TUT Module extern CString CTL_g_csCurrentTAG; extern CString CTL_g_csCurrentSecondaryInfo; #endif //CTL_WITH_NO_TUT //****************************************************************************** void CTL_fn_vSetDefaultCallBackFunctionWhenControlMustBeDisplayed(CTL_td_p_fn_bControlCanBeDisplayed _p_fnCallBack) { CTL_g_p_fnDefaultCallBack_ControlCanBeDisplayed = _p_fnCallBack; } //****************************************************************************** void CTL_fn_vSetDefaultCallBackFunctionWhenDataHasChanged(CTL_td_p_fn_vCallBackWhenDataHasChanged _p_fnCallBack) { CTL_g_p_fnDefaultCallBack_DataHasChanged = _p_fnCallBack; } //****************************************************************************** void CTL_fn_vSetDefaultCallBackFunctionWhenStaticIsClicked(CTL_td_p_fn_vStaticHasBeenClicked _p_fnDefaultCallBack_StaticHasBeenClicked) { CTL_g_p_fnDefaultCallBack_StaticHasBeenClicked = _p_fnDefaultCallBack_StaticHasBeenClicked; } //****************************************************************************** void CTL_fn_vSetDefaultCallBackFunctionToGetStaticColor(CTL_tdp_fn_vGetColor _p_fnDefaultCallBack_StaticColor) { CTL_g_p_fnDefaultCallBack_GetColor = _p_fnDefaultCallBack_StaticColor; } //****************************************************************************** CString CTL_fn_csGetVersion() { return CTL_g_csVersion; } //****************************************************************************** void CTL_fn_vSetModuleInfo(CString _csTAG, CString _csSecondaryInfo) { #ifndef CTL_WITH_NO_TUT ERROR_PREPARE_M(CTL_g_csModuleNameForErO, "Setting Module info for controls registration (TUT)", "CTL_fn_csSetModuleInfo(...)", E_ERROR_GRAVITY_INSTABLE, "You are going to overwrite the actual Module name ! Please call 'CTL_fn_vResetModuleInfo()'"); ERROR_ASSERT( CTL_g_csCurrentTAG.IsEmpty() ); CTL_g_csCurrentTAG = _csTAG; CTL_g_csCurrentSecondaryInfo = _csSecondaryInfo; #endif //CTL_WITH_NO_TUT } //****************************************************************************** void CTL_fn_vResetModuleInfo() { #ifndef CTL_WITH_NO_TUT CTL_g_csCurrentTAG = ""; CTL_g_csCurrentSecondaryInfo = ""; #endif //CTL_WITH_NO_TUT } //****************************************************************************** CString CTL_fn_csGetCurrentTAG() { #ifndef CTL_WITH_NO_TUT return CTL_g_csCurrentTAG; #endif //CTL_WITH_NO_TUT return "<< CTL is not using TUT ! >>"; } //****************************************************************************** CString CTL_fn_csGetCurrentSecondaryInfo() { #ifndef CTL_WITH_NO_TUT return CTL_g_csCurrentSecondaryInfo; #endif //CTL_WITH_NO_TUT return "<< CTL is not using TUT ! >>"; } //************************************************************************** void CTL_fn_vSetMemory(void *pvDest, void *pvSource, char cDataLength) { //ANNECY CB #if 0 ERROR_PREPARE_M(CTL_g_csModuleNameForErO, "Seting memory to update a motor data", "CTL_fn_vSetMemory(...)", E_ERROR_GRAVITY_INSTABLE, "The source is not a valid pointer : memory has not been updated"); ERROR_ASSERT( pvSource != NULL ); ERROR_PREPARE_M(CTL_g_csModuleNameForErO, "Seting memory to update a motor data", "CTL_fn_vSetMemory(...)", E_ERROR_GRAVITY_INSTABLE, "The destination is not a valid pointer : memory has not been updated"); ERROR_ASSERT( pvDest != NULL ); #endif //END if ( (pvSource != NULL) && (pvDest != NULL) ) { if (cDataLength == 0) { *((char *)pvDest) &=0xf0; *((char *)pvDest) |= *((char *)pvSource); } else memcpy(pvDest, pvSource, cDataLength); } } //************************************************************************** void CTL_fn_vGetMemory(void *pvSource, void *pvDest, char cDataLength) { //ANNECY CB #if 0 ERROR_PREPARE_M(CTL_g_csModuleNameForErO, "Geting memory to update a motor data", "CTL_fn_vGetMemory(...)", E_ERROR_GRAVITY_INSTABLE, "The source is not a valid pointer : memory has not been updated"); ERROR_ASSERT( pvSource != NULL ); ERROR_PREPARE_M(CTL_g_csModuleNameForErO, "Geting memory to update a motor data", "CTL_fn_vGetMemory(...)", E_ERROR_GRAVITY_INSTABLE, "The destination is not a valid pointer : memory has not been updated"); ERROR_ASSERT( pvDest != NULL ); #endif //END if ( (pvSource != NULL) && (pvDest != NULL) ) { if (cDataLength == 0) { memcpy(pvDest, pvSource, 1); *((char *)pvDest) &= 0x0f; } else memcpy(pvDest, pvSource, cDataLength); } } //**************************************************************************** //Returns 'CTL_g_lCurrentId', and adds one to it //.... Will be improved in future versions .... long CTL_fn_lGetNextAvailableIDForControl() { CTL_g_lCurrentId ++; return (CTL_g_lCurrentId - 1); } //**************************************************************************** //Returns the last returned ID long CPA_EXPORT CTL_fn_lGetCurrentIDForControl() { return (CTL_g_lCurrentId - 1); }