|
|
1.1 ! root 1: #import <appkit/appkit.h> ! 2: #import <video/NXLiveVideoView.h> ! 3: #import "MyApp.h" ! 4: ! 5: @implementation MyApp ! 6: ! 7: - appDidInit:sender ! 8: { ! 9: NXRect winRect; ! 10: int type; ! 11: NXSize vidSize; ! 12: ! 13: [nretWindow getFrame:&winRect]; ! 14: [nretWindow setBackgroundGray:NX_WHITE]; ! 15: [window setBecomeKeyOnlyIfNeeded:YES]; ! 16: // Get the screen size. ! 17: if(![NXLiveVideoView doesWindowSupportVideo:bufWindow ! 18: standard:&type size:&vidSize]) ! 19: { ! 20: NXRunAlertPanel("No Video Present","This machine is not capable of running video applications. Since this program is exclusively for Video, It will now exit","OK",NULL,NULL); ! 21: [self terminate:self]; ! 22: } ! 23: [bufWindow sizeWindow:vidSize.width :vidSize.height]; ! 24: [bufWindow makeKeyWindow]; ! 25: [nretWindow sizeWindow:vidSize.width :vidSize.height]; ! 26: [videoView grab]; ! 27: buffed=YES; ! 28: mode = NX_FROMINPUT; ! 29: return self; ! 30: } ! 31: ! 32: - setMode:sender ! 33: { ! 34: switch([[sender selectedCell] tag]) ! 35: { ! 36: case 0: ! 37: if(mode==NX_FROMINPUT) break;mode=NX_FROMINPUT; ! 38: [videoView stop:self]; ! 39: [videoView setOutputMode:NX_FROMINPUT]; ! 40: [outputBox removeFromSuperview]; ! 41: [[window contentView] addSubview:inputBox]; ! 42: if(!buffed) {[self swapWindows:self];[retainedButton setState:0];} ! 43: break; ! 44: case 1: ! 45: if(mode==NX_FROMVIEW) break;mode=NX_FROMVIEW; ! 46: [videoView stop:self]; ! 47: [videoView setOutputMode:NX_FROMVIEW]; ! 48: [inputBox removeFromSuperview]; ! 49: [[window contentView] addSubview:outputBox]; ! 50: break; ! 51: } ! 52: [[window contentView] display]; ! 53: [videoView display]; ! 54: return self; ! 55: } ! 56: ! 57: - setInput:sender ! 58: { ! 59: int types[] = {NX_VIDEOIN1,NX_VIDEOIN2,NX_VIDEOIN3}; ! 60: ! 61: [videoView selectInput:types[[[sender selectedCell] tag]]]; ! 62: return self; ! 63: } ! 64: ! 65: - setBrightness:sender ! 66: { ! 67: [videoView setInputBrightness:[sender floatValue]]; ! 68: return self; ! 69: } ! 70: ! 71: - setGamma:sender ! 72: { ! 73: [videoView setInputGamma:[sender floatValue]]; ! 74: return self; ! 75: } ! 76: ! 77: - setOutGamma:sender ! 78: { ! 79: [videoView setOutputGamma:[sender floatValue]]; ! 80: return self; ! 81: } ! 82: ! 83: - setHue:sender ! 84: { ! 85: [videoView setInputHue:[sender floatValue]]; ! 86: return self; ! 87: } ! 88: ! 89: - setSaturation:sender ! 90: { ! 91: [videoView setInputSaturation:[sender floatValue]]; ! 92: return self; ! 93: } ! 94: ! 95: - setSharpness:sender ! 96: { ! 97: [videoView setInputSharpness:[sender floatValue]]; ! 98: return self; ! 99: } ! 100: ! 101: - swapWindows:sender ! 102: { ! 103: BOOL videoWasOn = [videoView isVideoActive]; ! 104: [videoView stop:self]; ! 105: if(buffed) ! 106: { ! 107: buffed = NO; ! 108: [videoView removeFromSuperview]; ! 109: [[nretWindow contentView] addSubview:videoView]; ! 110: [nretWindow makeKeyAndOrderFront:self]; ! 111: [nretWindow display]; ! 112: [bufWindow close]; ! 113: } ! 114: else ! 115: { ! 116: buffed = YES; ! 117: [videoView removeFromSuperview]; ! 118: [[bufWindow contentView] addSubview:videoView]; ! 119: [videoView display]; ! 120: [bufWindow makeKeyAndOrderFront:self]; ! 121: [nretWindow close]; ! 122: } ! 123: if(videoWasOn) [videoView start:self]; ! 124: return self; ! 125: } ! 126: ! 127: - openImage:sender ! 128: { ! 129: if(mode==NX_FROMINPUT) ! 130: { ! 131: mode=NX_FROMVIEW; ! 132: [videoView stop:self]; ! 133: [videoView setOutputMode:NX_FROMVIEW]; ! 134: [inputBox removeFromSuperview]; ! 135: [[window contentView] addSubview:outputBox]; ! 136: [ioPopup setTitle:"Output"]; ! 137: [window display]; ! 138: } ! 139: [videoView setImage:self]; ! 140: return self; ! 141: } ! 142: ! 143: @end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.