00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00025 #include "connectionMgrLog.h"
00026 #include "commonData.h"
00027 #include "connectScreenData.h"
00028 #include "editScreenData.h"
00029
00030 static connection_t g_edit_network_type = connection_undefined_t;
00031
00032
00033 static networkProfile_t* g_network_profiles = NULL;
00034 static int g_n_network_profiles = 0;
00035
00036 void edit_data_init(void)
00037 {
00038 CN_LOGPRINTF("entry");
00039
00040
00041 connection_t networkType = connect_data_get_network_type();
00042 edit_data_set_network_type(networkType);
00043 }
00044
00045 void edit_data_destroy(void)
00046 {
00047 CN_LOGPRINTF("entry");
00048 }
00049
00050 connection_t edit_data_get_network_type(void)
00051 {
00052 CN_LOGPRINTF("ret=%d", g_edit_network_type);
00053
00054 return g_edit_network_type;
00055 }
00056
00057 gboolean edit_data_set_network_type(connection_t type)
00058 {
00059 CN_LOGPRINTF("entry type[%d]", type);
00060
00061 g_return_val_if_fail((type >= 0 && type <= connection_undefined_t),
00062 FALSE);
00063
00064 g_edit_network_type = type;
00065
00066 return TRUE;
00067 }
00068
00069 void edit_data_init_network_profiles(void)
00070 {
00071 CN_LOGPRINTF("entry");
00072
00073 connection_t networkType;
00074 int nProfiles;
00075 networkProfile_t* pNetworks;
00076
00077
00078 edit_data_destory_network_profiles();
00079
00080
00081 networkType = edit_data_get_network_type();
00082 nProfiles = common_data_init_network_profiles(networkType, &pNetworks);
00083 g_network_profiles = pNetworks;
00084 g_n_network_profiles = nProfiles;
00085 }
00086
00087 void edit_data_destory_network_profiles(void)
00088 {
00089 CN_LOGPRINTF("entry");
00090
00091 common_data_destroy_network_profiles(g_network_profiles,
00092 g_n_network_profiles);
00093 g_network_profiles = NULL;
00094 g_n_network_profiles = 0;
00095 }
00096
00097 void edit_data_store_network_profiles(void)
00098 {
00099 CN_LOGPRINTF("entry");
00100
00101 common_data_store();
00102 }
00103
00104 int edit_data_get_n_network_profiles(void)
00105 {
00106 CN_LOGPRINTF("entry [%d]", g_n_network_profiles);
00107
00108 return g_n_network_profiles;
00109 }
00110
00111 const networkProfile_t* edit_data_get_network_profile(guint profileIndex)
00112 {
00113 CN_LOGPRINTF("entry profileIndex[%d]", profileIndex);
00114
00115 networkProfile_t* ret = NULL;
00116
00117 g_return_val_if_fail(g_network_profiles != NULL, NULL);
00118 g_return_val_if_fail(profileIndex < g_n_network_profiles, NULL);
00119
00120 ret = &g_network_profiles[profileIndex];
00121
00122 CN_LOGPRINTF("ret=%p", ret);
00123
00124 return ret;
00125 }
00126
00127 gboolean edit_data_set_network_profile(int profileIndex,
00128 const networkProfile_t* pNetwork)
00129 {
00130 int regIndex, nActiveIndex;
00131 regNetworkProfile_t* settings = NULL;
00132
00133 CN_LOGPRINTF("entry");
00134
00135 g_return_val_if_fail(pNetwork != NULL, FALSE);
00136 if ((pNetwork->nRegProfiles > 0)
00137 && pNetwork->regSettingsList
00138 && ((pNetwork->nActiveIndex >= 0)
00139 && (pNetwork->nActiveIndex < pNetwork->nRegProfiles)))
00140 {
00141 nActiveIndex = pNetwork->nActiveIndex;
00142 settings = pNetwork->regSettingsList[nActiveIndex];
00143 }
00144 g_return_val_if_fail(settings != NULL, FALSE);
00145
00146 if (profileIndex == -1)
00147 {
00148 CN_LOGPRINTF("Adding a new profile.");
00149 regIndex = common_data_get_n_profiles();
00150 }
00151 else
00152 {
00153 regIndex = edit_data_get_reg_index(profileIndex);
00154 CN_LOGPRINTF("Setting %dth profile.", regIndex);
00155 }
00156
00157 g_return_val_if_fail(regIndex >= 0, FALSE);
00158 common_data_set_profiledata(regIndex, settings, FALSE);
00159
00160
00161 edit_data_init_network_profiles();
00162
00163 return TRUE;
00164 }
00165
00166 int edit_data_get_profile_index(guint regIndex)
00167 {
00168 CN_LOGPRINTF("entry regIndex[%d]", regIndex);
00169 int profileIndex = -1;
00170
00171 profileIndex = common_data_get_profile_index(g_network_profiles,
00172 g_n_network_profiles,
00173 regIndex);
00174
00175 return profileIndex;
00176 }
00177
00178 int edit_data_get_reg_index(guint profileIndex)
00179 {
00180 CN_LOGPRINTF("entry profileIndex[%d]", profileIndex);
00181
00182 int regIndex = -1;
00183
00184 regIndex = common_data_get_reg_index(g_network_profiles,
00185 g_n_network_profiles,
00186 profileIndex);
00187 return regIndex;
00188 }
00189
00190 gboolean edit_data_reach_max_profiles(void)
00191 {
00192 CN_LOGPRINTF("entry");
00193
00194 connection_t networkType;
00195 gboolean reachMax = FALSE;
00196
00197 networkType = edit_data_get_network_type();
00198 if ( ((networkType == wired_t)
00199 && common_data_reach_max_profiles(wired_t))
00200 || ((networkType == wireless_t)
00201 && common_data_reach_max_profiles(wireless_t))
00202 || ((networkType == dialup_t)
00203 && common_data_reach_max_profiles(dialup_t)) )
00204 {
00205 reachMax = TRUE;
00206 }
00207
00208 CN_LOGPRINTF("return reachMax=%d", reachMax);
00209 return reachMax;
00210 }
00211
00212 void edit_data_remove_network_profile(int profileIndex)
00213 {
00214 CN_LOGPRINTF("entry");
00215
00216 int regIndex = edit_data_get_reg_index(profileIndex);
00217
00218 if (regIndex != -1)
00219 {
00220 common_data_remove_profile(regIndex);
00221 connect_data_update_last_connected_profile_after_delete(regIndex);
00222 }
00223
00224
00225
00226 }
00227