Changeset 3271 in orxonox.OLD for orxonox/branches/updater/src/gui
- Timestamp:
- Dec 24, 2004, 6:29:38 PM (20 years ago)
- Location:
- orxonox/branches/updater/src/gui
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
orxonox/branches/updater/src/gui/Makefile.am
r3268 r3271 1 AM_CXXFLAGS=$(GTK2_CFLAGS) $( CURL_CFLAGS) $(MSBITFIELDS)2 #AM_LDFLAGS=$(GTK2_LIBS) 3 LIBS=$(GTK2_LIBS) $( CURL_LIBS)1 AM_CXXFLAGS=$(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS) 2 #AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) 3 LIBS=$(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) 4 4 5 5 bin_PROGRAMS=gui -
orxonox/branches/updater/src/gui/Makefile.in
r3268 r3271 113 113 EGREP = @EGREP@ 114 114 EXEEXT = @EXEEXT@ 115 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@ 116 GTHREAD_LIBS = @GTHREAD_LIBS@ 115 117 GTK2_CFLAGS = @GTK2_CFLAGS@ 116 118 GTK2_LIBS = @GTK2_LIBS@ 117 119 HAVE_CURL_FALSE = @HAVE_CURL_FALSE@ 118 120 HAVE_CURL_TRUE = @HAVE_CURL_TRUE@ 121 HAVE_GTHREAD_FALSE = @HAVE_GTHREAD_FALSE@ 122 HAVE_GTHREAD_TRUE = @HAVE_GTHREAD_TRUE@ 119 123 HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@ 120 124 HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@ … … 125 129 LDFLAGS = @LDFLAGS@ 126 130 LIBOBJS = @LIBOBJS@ 127 #AM_LDFLAGS=$(GTK2_LIBS) 128 LIBS = $(GTK2_LIBS) $( CURL_LIBS)131 #AM_LDFLAGS=$(GTK2_LIBS) $(GTHREAD_LIBS) 132 LIBS = $(GTK2_LIBS) $(GTHREAD_LIBS) $(CURL_LIBS) 129 133 LTLIBOBJS = @LTLIBOBJS@ 130 134 MAKEINFO = @MAKEINFO@ … … 184 188 target_os = @target_os@ 185 189 target_vendor = @target_vendor@ 186 AM_CXXFLAGS = $(GTK2_CFLAGS) $( CURL_CFLAGS) $(MSBITFIELDS)190 AM_CXXFLAGS = $(GTK2_CFLAGS) $(GTHREAD_CFLAGS) $(CURL_CFLAGS) $(MSBITFIELDS) 187 191 gui_SOURCES = orxonox_gui.cc \ 188 192 orxonox_gui_gtk.cc \ -
orxonox/branches/updater/src/gui/orxonox_gui_gtk.cc
r3268 r3271 47 47 bool initGTK(int argc, char *argv[]) 48 48 { 49 #ifdef HAVE_GTHREAD 50 PRINTF(3)("Initializing the ThreadSystem of the GUI\n"); 51 g_thread_init(NULL); 52 gdk_threads_init(); 53 #endif /* HAVE_GTHREAD */ 49 54 gtk_init (&argc, &argv); 50 55 gtk_rc_parse( "rc" ); … … 56 61 bool mainloopGTK(void) 57 62 { 58 PRINTF(1)("test\n");63 gdk_threads_enter(); 59 64 gtk_main(); 65 gdk_threads_leave(); 60 66 } 61 67 #endif /* HAVE_GTK2 */ … … 1203 1209 this->progress = this->totalSize; 1204 1210 1205 1206 1211 #ifdef HAVE_GTK2 1207 1212 gtk_progress_set_value(GTK_PROGRESS(widget), this->progress*100.0/this->totalSize); 1208 while (gtk_events_pending())1209 gtk_main_iteration_do(TRUE);1210 1213 #endif /* HAVE_GTK2 */ 1211 1214 PRINTF(3)("Progress: %f\n", progress*100.0/totalSize); -
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 -
orxonox/branches/updater/src/gui/orxonox_gui_update.h
r3270 r3271 59 59 60 60 static CURL* curlHandle; 61 static void* download (void* fileInfo);62 61 #ifdef HAVE_GTK2 63 62 static gint cancelDownload(GtkWidget* w, GdkEventKey* event, void* bar); 64 63 #endif /* HAVE_GTK2 */ 64 static GThread* downloadThreadID; 65 static void* download (void* fileInfo); 66 static void* downloadThread (void* fileInfo); 67 static void* downloadThreadFinished(void* outfile); 68 69 65 70 #endif /* HAVE_CURL */ 66 71
Note: See TracChangeset
for help on using the changeset viewer.