[tuxdroid-svn] r1081 - in software_suite_v2/middleware/tuxdriver/trunk: include test unix win32
Status: Beta
Brought to you by:
ks156
From: remi <c2m...@c2...> - 2008-05-02 14:40:25
|
Author: remi Date: 2008-05-02 16:40:29 +0200 (Fri, 02 May 2008) New Revision: 1081 Modified: software_suite_v2/middleware/tuxdriver/trunk/include/tux_driver.h software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.unix software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.win32 software_suite_v2/middleware/tuxdriver/trunk/test/main.c software_suite_v2/middleware/tuxdriver/trunk/unix/Makefile software_suite_v2/middleware/tuxdriver/trunk/win32/Makefile Log: added the compilation to a static library. changed the tux_driver.h header to static linking. changed the test program for a static connection to the library. Modified: software_suite_v2/middleware/tuxdriver/trunk/include/tux_driver.h =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/include/tux_driver.h 2008-05-02 13:27:52 UTC (rev 1080) +++ software_suite_v2/middleware/tuxdriver/trunk/include/tux_driver.h 2008-05-02 14:40:29 UTC (rev 1081) @@ -17,45 +17,12 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. */ -/* - * Imported functions: - * extern HMODULE TuxDrv_InitDll(const char *lpsz); - * extern long TuxDrv_UninitDll(void); - * extern void TuxDrv_Start(void); - * extern void TuxDrv_Stop(void); - * extern const char *TuxDrv_StrError(TuxDrvError error_code); - * extern void TuxDrv_GetDescriptor(tux_descriptor_t *tux_desc); - * extern void TuxDrv_SetStatusCallback(drv_status_callback_t funct); - * extern void TuxDrv_SetEndCycleCallback(drv_simple_callback_t funct); - * extern void TuxDrv_SetDongleConnectedCallback(drv_simple_callback_t funct); - * extern void TuxDrv_SetDongleDisconnectedCallback(drv_simple_callback_t funct); - * extern TuxDrvError TuxDrv_PerformCommand(double delay, char *cmd_str); - * extern void TuxDrv_ClearCommandStack(void); - * extern TuxDrvError TuxDrv_PerformMacroFile(char *file_path); - * extern TuxDrvError TuxDrv_PerformMacroText(char *macro); - * extern TuxDrvError TuxDrv_SoundReflash(char *tracks); - * extern void TuxDrv_SetLogLevel(log_level_t level); - * extern void TuxDrv_SetLogTarget(log_target_t target); - * extern TuxDrvError TuxDrv_GetStatusName(int id, char* name); - * extern TuxDrvError TuxDrv_GetStatusId(char* name, int *id); - * extern TuxDrvError TuxDrv_GetStatusState(int id, char *state); - * extern TuxDrvError TuxDrv_GetStatusValue(int id, char *value); - * extern void TuxDrv_GetAllStatusState(char *state); - * extern int TuxDrv_TokenizeStatus(char *status, drv_tokens_t *tokens); - * extern void TuxDrv_ResetPositions(void); - * extern void TuxDrv_ResetDongle(void); - * extern double get_time(void); - */ #ifndef _TUX_DRIVER_H_ #define _TUX_DRIVER_H_ #include <stdbool.h> -#ifndef WINAPI -# define WINAPI -#endif - /** * Id enumeration of high level status. */ @@ -227,217 +194,31 @@ LOG_LEVEL_NONE } log_level_t; -/** - * Dynamic library definitions for specific os. - */ +extern void TuxDrv_Start(void); +extern void TuxDrv_Stop(void); +extern const char *TuxDrv_StrError(TuxDrvError error_code); +extern void TuxDrv_GetDescriptor(tux_descriptor_t *tux_desc); +extern void TuxDrv_SetStatusCallback(drv_status_callback_t funct); +extern void TuxDrv_SetEndCycleCallback(drv_simple_callback_t funct); +extern void TuxDrv_SetDongleConnectedCallback(drv_simple_callback_t funct); +extern void TuxDrv_SetDongleDisconnectedCallback(drv_simple_callback_t funct); +extern TuxDrvError TuxDrv_PerformCommand(double delay, char *cmd_str); +extern void TuxDrv_ClearCommandStack(void); +extern TuxDrvError TuxDrv_PerformMacroFile(char *file_path); +extern TuxDrvError TuxDrv_PerformMacroText(char *macro); +extern TuxDrvError TuxDrv_SoundReflash(char *tracks); +extern void TuxDrv_SetLogLevel(log_level_t level); +extern void TuxDrv_SetLogTarget(log_target_t target); +extern TuxDrvError TuxDrv_GetStatusName(int id, char* name); +extern TuxDrvError TuxDrv_GetStatusId(char* name, int *id); +extern TuxDrvError TuxDrv_GetStatusState(int id, char *state); +extern TuxDrvError TuxDrv_GetStatusValue(int id, char *value); +extern void TuxDrv_GetAllStatusState(char *state); +extern int TuxDrv_TokenizeStatus(char *status, drv_tokens_t *tokens); +extern void TuxDrv_ResetPositions(void); +extern void TuxDrv_ResetDongle(void); +extern double get_time(void); -/** - * Windows arch. - */ -#ifdef WIN32 -# ifndef LOADSYMBOL -# define LOADSYMBOL GetProcAddress -# endif -# ifndef CLOSELIB -# define CLOSELIB FreeLibrary -# endif -# ifndef DYNHANDLE - typedef HMODULE DYNHANDLE; -# endif -/** - * Linux and mac arch. - */ -#else -# ifndef HWND -# define HWND void* -# endif -# ifndef HMODULE -# define HMODULE void* -# endif -# include <dlfcn.h> -# include <unistd.h> -# include <stdlib.h> -# include <string.h> -# ifndef LOADSYMBOL -# define LOADSYMBOL dlsym -# endif -# ifndef CLOSELIB -# define CLOSELIB dlclose -# endif -# ifndef DYNHANDLE - typedef void* DYNHANDLE; -# endif -#endif -/** - * Common arch. - */ -#ifndef DDECL -# define DDECL(x) LP_##x x=NULL; -#endif -#ifndef DCLEAR -# define DCLEAR(x) x=NULL; -#endif -#ifndef DYN -# define DYN(x) x=( LP_##x )LOADSYMBOL(hMod,#x); -#endif - -/** - * Function prototypes - */ -typedef void (WINAPI *LP_TuxDrv_Start)(void); -typedef void (WINAPI *LP_TuxDrv_Stop)(void); -typedef const char * (WINAPI *LP_TuxDrv_StrError)(TuxDrvError error_code); -typedef void (WINAPI *LP_TuxDrv_GetDescriptor)(tux_descriptor_t *tux_desc); -typedef void (WINAPI *LP_TuxDrv_SetStatusCallback)(drv_status_callback_t funct); -typedef void (WINAPI *LP_TuxDrv_SetEndCycleCallback)(drv_simple_callback_t funct); -typedef void (WINAPI *LP_TuxDrv_SetDongleConnectedCallback)(drv_simple_callback_t funct); -typedef void (WINAPI *LP_TuxDrv_SetDongleDisconnectedCallback)(drv_simple_callback_t funct); -typedef TuxDrvError (WINAPI *LP_TuxDrv_PerformCommand)(double delay, char *cmd_str); -typedef void (WINAPI *LP_TuxDrv_ClearCommandStack)(void); -typedef TuxDrvError (WINAPI *LP_TuxDrv_PerformMacroFile)(char *file_path); -typedef TuxDrvError (WINAPI *LP_TuxDrv_PerformMacroText)(char *macro); -typedef TuxDrvError (WINAPI *LP_TuxDrv_SoundReflash)(char *tracks); -typedef void (WINAPI *LP_TuxDrv_SetLogLevel)(log_level_t level); -typedef void (WINAPI *LP_TuxDrv_SetLogTarget)(log_target_t target); -typedef TuxDrvError (WINAPI *LP_TuxDrv_GetStatusName)(int id, char* name); -typedef TuxDrvError (WINAPI *LP_TuxDrv_GetStatusId)(char* name, int *id); -typedef TuxDrvError (WINAPI *LP_TuxDrv_GetStatusState)(int id, char *state); -typedef TuxDrvError (WINAPI *LP_TuxDrv_GetStatusValue)(int id, char *value); -typedef void (WINAPI *LP_TuxDrv_GetAllStatusState)(char *state); -typedef int (WINAPI *LP_TuxDrv_TokenizeStatus)(char *status, drv_tokens_t *tokens); -typedef void (WINAPI *LP_TuxDrv_ResetPositions)(void); -typedef void (WINAPI *LP_TuxDrv_ResetDongle)(void); -typedef double (WINAPI *LP_get_time)(void); - -/** - * Made instance of functions. - */ -DDECL(TuxDrv_Start); -DDECL(TuxDrv_Stop); -DDECL(TuxDrv_StrError); -DDECL(TuxDrv_GetDescriptor); -DDECL(TuxDrv_SetStatusCallback); -DDECL(TuxDrv_SetEndCycleCallback); -DDECL(TuxDrv_SetDongleConnectedCallback); -DDECL(TuxDrv_SetDongleDisconnectedCallback); -DDECL(TuxDrv_PerformCommand); -DDECL(TuxDrv_ClearCommandStack); -DDECL(TuxDrv_PerformMacroFile); -DDECL(TuxDrv_PerformMacroText); -DDECL(TuxDrv_SoundReflash); -DDECL(TuxDrv_SetLogLevel); -DDECL(TuxDrv_SetLogTarget); -DDECL(TuxDrv_GetStatusName); -DDECL(TuxDrv_GetStatusId); -DDECL(TuxDrv_GetStatusState); -DDECL(TuxDrv_GetStatusValue); -DDECL(TuxDrv_GetAllStatusState); -DDECL(TuxDrv_TokenizeStatus); -DDECL(TuxDrv_ResetPositions); -DDECL(TuxDrv_ResetDongle); -DDECL(get_time); - -/** - * Declaration of the handle to the library. - */ -HMODULE _TUXDRIVER_hMod = NULL; - -/** - * Get the function address in the library. - */ -void -LoadFunctions(hMod) -HMODULE hMod; -{ - _TUXDRIVER_hMod = hMod; - DYN(TuxDrv_Start); - DYN(TuxDrv_Stop); - DYN(TuxDrv_StrError); - DYN(TuxDrv_GetDescriptor); - DYN(TuxDrv_SetStatusCallback); - DYN(TuxDrv_SetEndCycleCallback); - DYN(TuxDrv_SetDongleConnectedCallback); - DYN(TuxDrv_SetDongleDisconnectedCallback); - DYN(TuxDrv_PerformCommand); - DYN(TuxDrv_ClearCommandStack); - DYN(TuxDrv_PerformMacroFile); - DYN(TuxDrv_PerformMacroText); - DYN(TuxDrv_SoundReflash); - DYN(TuxDrv_SetLogLevel); - DYN(TuxDrv_SetLogTarget); - DYN(TuxDrv_GetStatusName); - DYN(TuxDrv_GetStatusId); - DYN(TuxDrv_GetStatusState); - DYN(TuxDrv_GetStatusValue); - DYN(TuxDrv_GetAllStatusState); - DYN(TuxDrv_TokenizeStatus); - DYN(TuxDrv_ResetPositions); - DYN(TuxDrv_ResetDongle); - DYN(get_time); -} - -/** - * Initialization of library. - */ -HMODULE -TuxDrv_InitDll(lpsz) -const char *lpsz; -{ - - HMODULE hMod = NULL; -#ifdef WIN32 - hMod = LoadLibrary(lpsz); - if(!hMod || (hMod < (HMODULE)32)) - { - return hMod; - } -#else - hMod = dlopen(lpsz, RTLD_NOW); - if(!hMod) - { - return NULL; - } - setenv("TUXDRIVERLIBPATH", lpsz, 1); -#endif - LoadFunctions(hMod); - return hMod; -} - -/** - * Finalization of library. - */ -long -TuxDrv_UninitDll() -{ - CLOSELIB(_TUXDRIVER_hMod); - _TUXDRIVER_hMod = NULL; - DCLEAR(TuxDrv_Start); - DCLEAR(TuxDrv_Stop); - DCLEAR(TuxDrv_StrError); - DCLEAR(TuxDrv_GetDescriptor); - DCLEAR(TuxDrv_SetStatusCallback); - DCLEAR(TuxDrv_SetEndCycleCallback); - DCLEAR(TuxDrv_SetDongleConnectedCallback); - DCLEAR(TuxDrv_SetDongleDisconnectedCallback); - DCLEAR(TuxDrv_PerformCommand); - DCLEAR(TuxDrv_ClearCommandStack); - DCLEAR(TuxDrv_PerformMacroFile); - DCLEAR(TuxDrv_PerformMacroText); - DCLEAR(TuxDrv_SoundReflash); - DCLEAR(TuxDrv_SetLogLevel); - DCLEAR(TuxDrv_SetLogTarget); - DCLEAR(TuxDrv_GetStatusName); - DCLEAR(TuxDrv_GetStatusId); - DCLEAR(TuxDrv_GetStatusState); - DCLEAR(TuxDrv_GetStatusValue); - DCLEAR(TuxDrv_GetAllStatusState); - DCLEAR(TuxDrv_TokenizeStatus); - DCLEAR(TuxDrv_ResetPositions); - DCLEAR(TuxDrv_ResetDongle); - DCLEAR(get_time); - return 0; -} - #if defined(__cplusplus) } #endif Modified: software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.unix =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.unix 2008-05-02 13:27:52 UTC (rev 1080) +++ software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.unix 2008-05-02 14:40:29 UTC (rev 1081) @@ -10,9 +10,9 @@ C_INCLUDE_DIRS = C_PREPROC = CFLAGS = -pipe -Wall -g2 -O0 -LIB_DIRS = -LIBS = -ldl -LDFLAGS = -pipe +LIB_DIRS = -L ../unix +LIBS = -ldl -ltuxdriver -lm +LDFLAGS = -pipe -static SRC_OBJS = \ $(OBJ_DIR)/main.o Modified: software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.win32 =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.win32 2008-05-02 13:27:52 UTC (rev 1080) +++ software_suite_v2/middleware/tuxdriver/trunk/test/Makefile.win32 2008-05-02 14:40:29 UTC (rev 1081) @@ -14,8 +14,8 @@ RC_INCLUDE_DIRS = RC_PREPROC = RCFLAGS = -LIB_DIRS = -LIBS = +LIB_DIRS = -L "../win32" +LIBS = -ltuxdriver LDFLAGS = -pipe ifeq ($(OS),Windows_NT) Modified: software_suite_v2/middleware/tuxdriver/trunk/test/main.c =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/test/main.c 2008-05-02 13:27:52 UTC (rev 1080) +++ software_suite_v2/middleware/tuxdriver/trunk/test/main.c 2008-05-02 14:40:29 UTC (rev 1081) @@ -213,23 +213,11 @@ argc -= optind; argv += optind; -#ifdef WIN32 - if (TuxDrv_InitDll("../win32/tux_driver.dll") == NULL) - { - return -1; - } -#else - if (TuxDrv_InitDll("../unix/tux_driver.so") == NULL) - { - return -1; - } -#endif TuxDrv_SetLogLevel(LOG_LEVEL_ERROR); TuxDrv_SetLogTarget(LOG_TARGET_SHELL); TuxDrv_SetStatusCallback(on_status_event); TuxDrv_SetEndCycleCallback(on_end_cycle); TuxDrv_Start(); - TuxDrv_UninitDll(); return 0; } Modified: software_suite_v2/middleware/tuxdriver/trunk/unix/Makefile =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/unix/Makefile 2008-05-02 13:27:52 UTC (rev 1080) +++ software_suite_v2/middleware/tuxdriver/trunk/unix/Makefile 2008-05-02 14:40:29 UTC (rev 1081) @@ -13,7 +13,7 @@ CFLAGS = -pipe -std=gnu99 -DUSB_DEBUG0 -DSHOW_EVENTS -DNO_MOTORS_CHECK -DNO_THREAD -Wall -g0 -O2 -fPIC LIB_DIRS = LIBS = -lgthread-2.0 -lm -LDFLAGS = -pipe -shared +LDFLAGS = -pipe -shared SRC_OBJS = \ $(OBJ_DIR)/tux_battery.o \ @@ -45,6 +45,7 @@ define build_target @echo Linking... @$(CC) -o "$(OUTPUT_DIR)/$(TARGET)" $(SRC_OBJS) $(LIB_DIRS) $(LIBS) $(LDFLAGS) +@ar rcs $(OUTPUT_DIR)/libtuxdriver.a $(SRC_OBJS) endef define compile_source Modified: software_suite_v2/middleware/tuxdriver/trunk/win32/Makefile =================================================================== --- software_suite_v2/middleware/tuxdriver/trunk/win32/Makefile 2008-05-02 13:27:52 UTC (rev 1080) +++ software_suite_v2/middleware/tuxdriver/trunk/win32/Makefile 2008-05-02 14:40:29 UTC (rev 1081) @@ -14,9 +14,9 @@ RC_INCLUDE_DIRS = RC_PREPROC = RCFLAGS = -LIB_DIRS = -L"../libs" +LIB_DIRS = LIBS = -lwinmm -lhid -lsetupapi -lhidparse -LDFLAGS = -pipe -shared -Wl,--output-def,"$(OBJ_DIR)\driver_dll.def",--out-implib,"$(OBJ_DIR)\libdriver_dll.dll.a" +LDFLAGS = -pipe -shared -Wl,--output-def,"$(OUTPUT_DIR)\libtuxdriver.def",--out-implib,"$(OUTPUT_DIR)\libtuxdriver.a" ifeq ($(OS),Windows_NT) NULL = |