00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00028 #ifndef _CONNECT_SCAN_H_
00029 #define _CONNECT_SCAN_H_
00030 
00031 #include <glib.h>
00032 #include <liberregxml/erregapi.h>
00033 #include "scanThread.h"
00034 
00035 
00036 typedef enum
00037 {
00038     backgroundScan_e = 0,
00039     connectScan_e,
00040     editScan_e,
00041     undefScanMode_e
00042 }scanMode_t;
00043 
00044 typedef enum
00045 {
00046     scanRunning_e = 0,
00047     rescanNeed_e,       
00048     scanOk_e,           
00049     scanAborting_e,
00050     undefScanStatus_e
00051 }scanStatus_t;
00052 
00053 typedef void scan_done_t(connection_t type, 
00054                          network_spec_t* pNetworks, 
00055                          int nNetworks);
00056 typedef void scan_done_after_t(void);
00057 
00058 typedef struct
00059 {
00060     
00061     scanMode_t   mode;
00062     
00063     connection_t networkType;
00064 
00065     
00066     scan_thread_parms* scanParms;
00067 
00068     
00069     scan_done_t*       scan_done;
00070     scan_done_after_t* scan_done_after; 
00071      
00072     
00073 
00074     
00075     
00076     gboolean     scanNetworks;
00077     guint        scanTimeoutId;
00078     gboolean     scanAborting;
00079 }scanContext_t;
00080 
00081 #ifdef __cplusplus
00082 extern  "C"
00083 {
00084 #endif  
00085 
00086     scanContext_t* connect_scan_ctxt_new(void);
00087 
00088     void connect_scan_ctxt_set_mode(scanContext_t* ctxt, scanMode_t mode);
00089     void connect_scan_ctxt_set_network_type(scanContext_t* ctxt, 
00090                                             connection_t networkType);
00091     void connect_scan_ctxt_set_done_callbacks(scanContext_t* ctxt, 
00092                                       scan_done_t* scan_done, 
00093                                       scan_done_after_t* scan_done_after);
00094     void connect_scan_ctxt_set_ssidlist(scanContext_t* ctxt, 
00095                                         gchar* ssidList);
00096     void connect_scan_ctxt_set_max_networks(scanContext_t* ctxt, 
00097                                             int maxNetworks);
00098     
00099     void connect_scan_ctxt_destory(scanContext_t* ctxt);
00100 
00101     void connect_scan(scanContext_t* ctxt, gboolean delay);
00102     void connect_scan_abort(scanContext_t* ctxt);
00103 
00104     gboolean connect_scan_freeze_ui(scanContext_t* ctxt);
00105 
00106 #ifdef __cplusplus
00107 }
00108 #endif  
00109 
00110 #endif //_CONNECT_SCAN_H_
00111