Go to the documentation of this file.00001 #ifndef __CPHIDGETMANAGER
00002 #define __CPHIDGETMANAGER
00003 #include "cphidget.h"
00004
00014 DPHANDLE(Manager)
00015
00016 #ifndef EXTERNALPROTO
00017
00018 typedef enum
00019 {
00020 PHIDGETMANAGER_INACTIVE = 1,
00021 PHIDGETMANAGER_ACTIVE,
00022 PHIDGETMANAGER_ACTIVATING
00023 } CPhidgetManagerState;
00024
00025 typedef struct _CPhidgetManager
00026 {
00027 CPhidgetRemoteHandle networkInfo;
00028 int(CCONV *fptrError)(CPhidgetManagerHandle , void *, int, const char *);
00029 void *fptrErrorptr;
00030 int(CCONV *fptrServerConnect)(CPhidgetManagerHandle , void *);
00031 void *fptrServerConnectptr;
00032 int(CCONV *fptrServerDisconnect)(CPhidgetManagerHandle , void *);
00033 void *fptrServerDisconnectptr;
00034 CThread_mutex_t lock;
00035 int status;
00036 CThread_mutex_t openCloseLock;
00037 CPhidgetManagerState state;
00038 CPhidgetList *AttachedPhidgets;
00039 int (CCONV *fptrAttachChange)(CPhidgetHandle phid, void *userPtr);
00040 void *fptrAttachChangeptr;
00041 int (CCONV *fptrDetachChange)(CPhidgetHandle phid, void *userPtr);
00042 void *fptrDetachChangeptr;
00043 } CPhidgetManager;
00044
00045 typedef struct _CPhidgetManagerList
00046 {
00047 struct _CPhidgetManagerList *next;
00048 CPhidgetManager *phidm;
00049 } CPhidgetManagerList, *CPhidgetManagerListHandle;
00050
00051 extern CPhidgetManagerListHandle localPhidgetManagers;
00052 extern int ActivePhidgetManagers;
00053
00054 int CPhidgetManager_poll();
00055 int CPhidgetAttachEvent(CPhidgetHandle phid);
00056 int CPhidgetDetachEvent(CPhidgetHandle phid);
00057
00058 int CPhidgetManager_areEqual(void *arg1, void *arg2);
00059 void CPhidgetManager_free(void *arg);
00060 #endif
00061
00066 PHIDGET21_API int CCONV CPhidgetManager_create(CPhidgetManagerHandle *phidm);
00071 PHIDGET21_API int CCONV CPhidgetManager_open(CPhidgetManagerHandle phidm);
00076 PHIDGET21_API int CCONV CPhidgetManager_close(CPhidgetManagerHandle phidm);
00081 PHIDGET21_API int CCONV CPhidgetManager_delete(CPhidgetManagerHandle phidm);
00088 PHIDGET21_API int CCONV CPhidgetManager_set_OnAttach_Handler(CPhidgetManagerHandle phidm, int (CCONV *fptr)(CPhidgetHandle phid, void *userPtr), void *userPtr);
00095 PHIDGET21_API int CCONV CPhidgetManager_set_OnDetach_Handler(CPhidgetManagerHandle phidm, int (CCONV *fptr)(CPhidgetHandle phid, void *userPtr), void *userPtr);
00102 PHIDGET21_API int CCONV CPhidgetManager_getAttachedDevices(CPhidgetManagerHandle phidm, CPhidgetHandle *phidArray[], int *count);
00108 PHIDGET21_API int CCONV CPhidgetManager_freeAttachedDevicesArray(CPhidgetHandle phidArray[]);
00115 PHIDGET21_API int CCONV CPhidgetManager_set_OnError_Handler(CPhidgetManagerHandle phidm, int(CCONV *fptr)(CPhidgetManagerHandle phidm, void *userPtr, int errorCode, const char *errorString), void *userPtr);
00122 PHIDGET21_API int CCONV CPhidgetManager_set_OnServerConnect_Handler(CPhidgetManagerHandle phidm, int (CCONV *fptr)(CPhidgetManagerHandle phidm, void *userPtr), void *userPtr);
00129 PHIDGET21_API int CCONV CPhidgetManager_set_OnServerDisconnect_Handler(CPhidgetManagerHandle phidm, int (CCONV *fptr)(CPhidgetManagerHandle phidm, void *userPtr), void *userPtr);
00135 PHIDGET21_API int CCONV CPhidgetManager_getServerID(CPhidgetManagerHandle phidm, const char **serverID);
00142 PHIDGET21_API int CCONV CPhidgetManager_getServerAddress(CPhidgetManagerHandle phidm, const char **address, int *port);
00148 PHIDGET21_API int CCONV CPhidgetManager_getServerStatus(CPhidgetManagerHandle phidm, int *serverStatus);
00149
00152 #endif
00153