| Revision: 340
          http://svn.sourceforge.net/fuse-for-macosx/?rev=340&view=rev
Author:   fredm
Date:     2007-04-06 02:48:36 -0700 (Fri, 06 Apr 2007)
Log Message:
-----------
Make changes due to some routines being called from the Emulator
thread rather than the UI one.
Modified Paths:
--------------
    branches/fusegl/fuse/fusepb/controllers/FuseController.m
Modified: branches/fusegl/fuse/fusepb/controllers/FuseController.m
===================================================================
--- branches/fusegl/fuse/fusepb/controllers/FuseController.m	2007-04-06 07:21:52 UTC (rev 339)
+++ branches/fusegl/fuse/fusepb/controllers/FuseController.m	2007-04-06 09:48:36 UTC (rev 340)
@@ -50,6 +50,7 @@
 #include "settings.h"
 #include "settings_cocoa.h"
 #include "snapshot.h"
+#include "tape.h"
 #include "thumbnail.h"
 #include "ui.h"
 #include "uidisplay.h"
@@ -1840,9 +1841,14 @@
 
   if( !filename ) { [[DisplayOpenGLView instance] unpause]; return 1; }
 
-  [[DisplayOpenGLView instance] tapeWrite:filename];
+  /* We will be calling this from the Emulator thread */
+  tape_write( filename );
 
-  [[FuseController singleton] addRecentSnapshot:filename];
+  [[FuseController singleton] 
+        performSelectorOnMainThread:@selector(addRecentSnapshotWithString:)
+        withObject:[NSString stringWithUTF8String:filename]
+        waitUntilDone:NO
+  ];
 
   free( filename );
 
@@ -1870,9 +1876,14 @@
 
   if( !filename ) { [[DisplayOpenGLView instance] unpause]; return 1; }
 
-  [[DisplayOpenGLView instance] specplus3DiskWrite:filename inDrive:which];
+  /* We will be calling this from the Emulator thread */
+  specplus3_disk_write( which, filename );
 
-  [[FuseController singleton] addRecentSnapshot:filename];
+  [[FuseController singleton] 
+        performSelectorOnMainThread:@selector(addRecentSnapshotWithString:)
+        withObject:[NSString stringWithUTF8String:filename]
+        waitUntilDone:NO
+  ];
 
   free( filename );
 
@@ -1901,9 +1912,14 @@
 
   if( !filename ) { [[DisplayOpenGLView instance] unpause]; return 1; }
 
-  [[DisplayOpenGLView instance] trdosDiskWrite:filename inDrive:which];
+  /* We will be calling this from the Emulator thread */
+  trdos_disk_write( which, filename );
 
-  [[FuseController singleton] addRecentSnapshot:filename];
+  [[FuseController singleton] 
+        performSelectorOnMainThread:@selector(addRecentSnapshotWithString:)
+        withObject:[NSString stringWithUTF8String:filename]
+        waitUntilDone:NO
+  ];
 
   free( filename );
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |