1#import "IrDAActions.h" 2#import "IrDAStatus.h" 3#import <sys/stat.h> 4#import "Preferences.h" 5 6@implementation IrDAActions 7// IsCheetahNetworkPrefs 8- (NSString *) GetCurrentDriverName{ 9 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 10 return ([defaults objectForKey: DefaultDriverKey]); 11} 12- (IBAction)StartIrDA:(id)sender 13{ 14 kern_return_t kr; 15 io_object_t netif; 16 io_connect_t conObj; 17 mach_port_t masterPort; 18 NSString *driverName = [self GetCurrentDriverName]; 19 const char *driverCStringName = [driverName cString]; 20 21 NSLog(@"StartIrDA"); 22 // Get master device port 23 // 24 kr = IOMasterPort(bootstrap_port, &masterPort); 25 if (kr != KERN_SUCCESS) { 26 printf("IOMasterPort() failed: %08lx\n", (unsigned long)kr); 27 return; 28 } 29 netif = getInterfaceWithName(masterPort, driverCStringName); 30 if (netif) { 31 kr = openDevice(netif, &conObj); 32 if (kr == kIOReturnSuccess) { 33 size_t infosize = 0; 34 35 kr = doCommand(conObj, kIrDAUserCmd_Enable, nil, 0, nil, &infosize); 36 if (kr == kIOReturnSuccess) { 37 NSLog(@"StartIrDA: kIrDAUserCmd_Enable worked!"); 38 } 39 else{ 40 printf("kr is %d\n", kr); 41 } 42 closeDevice(conObj); 43 } 44 IOObjectRelease(netif); 45 } 46 else{ 47 NSLog(@"Unable to find the Requested Driver"); 48 } 49} 50- (IBAction)StopIrDA:(id)sender 51{ 52 kern_return_t kr; 53 io_object_t netif; 54 io_connect_t conObj; 55 mach_port_t masterPort; 56 NSString *driverName = [self GetCurrentDriverName]; 57 const char *driverCStringName = [driverName cString]; 58 59 NSLog(@"StopIrDA"); 60 // Get master device port 61 // 62 kr = IOMasterPort(bootstrap_port, &masterPort); 63 if (kr != KERN_SUCCESS) { 64 printf("IOMasterPort() failed: %08lx\n", (unsigned long)kr); 65 return; 66 } 67 netif = getInterfaceWithName(masterPort, driverCStringName); 68 if (netif) { 69 kr = openDevice(netif, &conObj); 70 if (kr == kIOReturnSuccess) { 71 size_t infosize = 0; 72 73 kr = doCommand(conObj, kIrDAUserCmd_Disable, nil, 0, nil, &infosize); 74 if (kr == kIOReturnSuccess) { 75 NSLog(@"StopIrDA: kIrDAUserCmd_Disable worked!"); 76 } 77 else{ 78 printf("kr is %d\n", kr); 79 } 80 closeDevice(conObj); 81 } 82 IOObjectRelease(netif); 83 } 84 else{ 85 NSLog(@"Unable to find the Requested Driver"); 86 } 87} 88 89@end 90