home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Examples / AppKit / VideoApp / MyApp.m < prev    next >
Encoding:
Text File  |  1992-05-27  |  3.1 KB  |  144 lines

  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.       [[windWontentView] 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
  144.