Changeset 3271 in orxonox.OLD for orxonox/branches/updater/src/gui/orxonox_gui_update.cc
- Timestamp:
- Dec 24, 2004, 6:29:38 PM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/branches/updater/src/gui/orxonox_gui_update.cc
r3270 r3271 90 90 #ifdef HAVE_GTK2 91 91 updateDataWindowButton->connectSignal("button_press_event", updateDataWindow, Window::windowOpen); 92 updateDataWindow->connectSignal("destroy", updateDataWindow, cancelDownload);93 updateDataWindow->connectSignal("delete_event", updateDataWindow, cancelDownload);92 updateDataWindow->connectSignal("destroy", updateDataWindow, Window::windowClose); 93 updateDataWindow->connectSignal("delete_event", updateDataWindow, Window::windowClose); 94 94 #endif /* HAVE_GTK2 */ 95 95 … … 149 149 FileInfo* info = new FileInfo; 150 150 151 info->fileName = "0 3%20orxonox%203'.mp3";151 info->fileName = "02%20orxonox%203.mp3"; 152 152 info->webRoot = "http://www.orxonox.ethz.ch/files/"; 153 153 info->localRoot = "./"; 154 154 info->Bar = (ProgressBar*)bar; 155 155 PRINTF(3)("Preparing to download file %s.\n", info->fileName); 156 download(info); 156 download (info); 157 /* 158 if (downloadThreadID == NULL) 159 { 160 if ( (downloadThreadID =g_thread_create(&downloadThread, info, TRUE, NULL)) == 0 ) 161 PRINTF(1)("can't create the thread"); 162 } 163 else 164 PRINTF(1)("thread already in use\n"); 165 */ 157 166 } 158 167 … … 188 197 Bar->setTotalSize(totalSize); 189 198 return 0; 199 190 200 } 191 201 192 202 CURL* OrxonoxGuiUpdate::curlHandle = NULL; 203 GThread* OrxonoxGuiUpdate::downloadThreadID = NULL; 193 204 194 205 void* OrxonoxGuiUpdate::download (void* fileInfo) … … 209 220 if(curlHandle) 210 221 { 222 211 223 outfile = fopen(fileOnDisk, "w"); 212 224 213 225 curl_easy_setopt(curlHandle, CURLOPT_URL, fileOnNet); 214 226 curl_easy_setopt(curlHandle, CURLOPT_WRITEDATA, outfile); … … 218 230 curl_easy_setopt(curlHandle, CURLOPT_PROGRESSFUNCTION, curlProgressFunc); 219 231 curl_easy_setopt(curlHandle, CURLOPT_PROGRESSDATA, info->Bar); 232 233 if (!downloadThreadID) 234 { 235 //! \todo check if threads really were created. 236 downloadThreadID = g_thread_create(&downloadThread, info, TRUE, NULL); 237 238 g_thread_create(&downloadThreadFinished, outfile, TRUE, NULL); 239 } 240 else 241 PRINTF(1)("thread already in use\n"); 242 // res = curl_easy_perform(curlHandle); 220 243 221 res = curl_easy_perform(curlHandle); 222 223 fclose(outfile); 224 if (curlHandle) 225 curl_easy_cleanup(curlHandle); 244 // fclose(outfile); 226 245 } 246 // downloadThreadID = NULL; 227 247 return NULL; 248 } 249 void* OrxonoxGuiUpdate::downloadThread(void* fileInfo) 250 { 251 // gdk_threads_enter(); 252 curl_easy_perform(curlHandle); 253 if (curlHandle) 254 curl_easy_cleanup(curlHandle); 255 gdk_threads_leave(); 256 downloadThreadID = NULL; 257 // g_thread_exit (NULL); 258 } 259 260 void* OrxonoxGuiUpdate::downloadThreadFinished(void* outfile) 261 { 262 g_thread_join(downloadThreadID); 263 PRINTF(3)("Closing the downloaded file.\n"); 264 fclose((FILE*)outfile); 228 265 } 229 266
Note: See TracChangeset
for help on using the changeset viewer.