101 lines
2.3 KiB
Objective-C
101 lines
2.3 KiB
Objective-C
#import "AppController.h"
|
|
#import "CommandWrapper.h"
|
|
|
|
#define UCON64 "/usr/local/bin/ucon64"
|
|
#define ROMFILE "/Users/david/Devel/arch/avr/code/quickdev16/roms/mrdo.smc"
|
|
|
|
|
|
@implementation AppController
|
|
- (id) init {
|
|
[super init];
|
|
NSLog(@"init");
|
|
return self;
|
|
}
|
|
|
|
- (void)awakeFromNib {
|
|
[textFieldLog setStringValue:@"Log field"];
|
|
[textFieldInfo setStringValue:@"Info field"];
|
|
|
|
NSLog(@"awakeFromNib");
|
|
}
|
|
|
|
- (IBAction)romUpload:(id)sender {
|
|
NSLog(@"romUpload:");
|
|
NSTask *ls=[[NSTask alloc] init];
|
|
NSPipe *pipe=[[NSPipe alloc] init];
|
|
NSFileHandle *handle;
|
|
|
|
[ls setLaunchPath:@UCON64];
|
|
[ls setArguments:[NSArray arrayWithObjects:@"-smc",@"--port=usb",@"--xquickdev16",@ROMFILE,nil]];
|
|
[ls setStandardOutput:pipe];
|
|
handle=[pipe fileHandleForReading];
|
|
|
|
[ls launch];
|
|
|
|
[NSThread detachNewThreadSelector:@selector(copyData:)
|
|
toTarget:self withObject:handle];
|
|
|
|
[pipe release];
|
|
[ls release];
|
|
}
|
|
|
|
|
|
- (void)copyData:(NSFileHandle*)handle {
|
|
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
|
|
NSData *data;
|
|
|
|
while([data=[handle availableData] length]) { // until EOF (check reference)
|
|
NSString *string=[[NSString alloc] initWithData:data
|
|
encoding:NSASCIIStringEncoding];
|
|
|
|
[textFieldLog setStringValue:string];
|
|
[string release];
|
|
}
|
|
|
|
[pool release];
|
|
}
|
|
|
|
|
|
|
|
- (IBAction)romInfo:(id)sender {
|
|
NSTask *ls=[[NSTask alloc] init];
|
|
NSPipe *pipe=[[NSPipe alloc] init];
|
|
NSFileHandle *handle;
|
|
NSString *string;
|
|
NSLog(@"romInfo");
|
|
|
|
[ls setLaunchPath:@"/usr/local/bin/ucon64"];
|
|
[ls setArguments:[NSArray arrayWithObjects:@ROMFILE,nil]];
|
|
[ls setStandardOutput:pipe];
|
|
handle=[pipe fileHandleForReading];
|
|
|
|
[ls launch];
|
|
|
|
string=[[NSString alloc] initWithData:[handle readDataToEndOfFile]
|
|
encoding:NSASCIIStringEncoding]; // convert NSData -> NSString
|
|
|
|
NSLog(@"romInfo: %@", string);
|
|
[textFieldInfo setStringValue:string];
|
|
[string retain];
|
|
[pipe release];
|
|
[ls release];
|
|
}
|
|
|
|
-(NSSize)windowWillResize:(NSWindow *)send toSize:(NSSize) framesize;
|
|
{
|
|
float w = framesize.width;
|
|
float h = framesize.height;
|
|
NSLog(@"called willResize %f x %f ",w,h);
|
|
|
|
w = w*2;
|
|
framesize.width = w;
|
|
return framesize;
|
|
}
|
|
|
|
- (void) dealloc {
|
|
NSLog(@"dealloc");
|
|
[super dealloc];
|
|
|
|
}
|
|
@end
|