quickdev16/tools/Quickdev16/AppController.m
2009-09-07 08:19:38 +02:00

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