This is MovieView.h in view mode; [Download] [Up]
#include <stdio.h> #include <libc.h> #include <math.h> #include <sys/file.h> /* access() */ #include <string.h> /* strfoo() */ #include <sys/dir.h> /* getdirentries */ #include <sys/stat.h> #include <sys/file.h> #import <objc/List.h> #import <appkit/Application.h> /* NX_BASETHRESHOLD */ #import <appkit/View.h> #import <appkit/Pasteboard.h> #import <appkit/NXBitmapImageRep.h> #import <appkit/NXImage.h> #import <appkit/nextstd.h> #import <dpsclient/wraps.h> #import <appkit/Slider.h> #import <appkit/Button.h> #import <appkit/Matrix.h> #import <appkit/Text.h> #import <appkit/Panel.h> #import <appkit/OpenPanel.h> #import <appkit/SavePanel.h> #import <defaults/defaults.h> #import <streams/streams.h> #import "Animator.h" typedef enum { REVERSE = -1, STOPPED = 0, FORWARD = 1, LOADING = 2 } runState; typedef enum { LOOP = 0, BOUNCE=1, ONCE=2} runMode; typedef enum { D_DEF=0, D_2=1, D_8=2, D_12=3, D_24=4} depthMode; #define VERSION __DATE__ #define REVSTEP 0 #define REV 1 #define STOP 2 #define FWD 3 #define FWDSTEP 4 typedef struct _mpeg_info { // window settings int colorSpace, zoom, backing; BOOL sync, drop; float fps; // stream attributes unsigned int h_size; unsigned int v_size; unsigned char aspect_ratio; // Code for aspect ratio. unsigned char picture_rate; // Code for picture rate. unsigned long bit_rate; // Bit rate. unsigned int vbv_buffer_size; // Minimum buffer size. BOOL const_param_flag; // Contrained parameter flag. // measured statistics int totalFrames, frameCount; double elapsedTime; } mpegInfo; /* a single frame of the movie */ typedef struct { NXBitmapImageRep *original; NXImage *image; } movieFrameStruct; @interface MovieView : View { char moviePath[MAXPATHLEN]; movieFrameStruct *movieFrame; int numFrames; int currentFrameIndex; int frameCount; NXSize maxSize; /* size of biggest frame (for restore: method) */ float frameRate; runState state; /* fwd, back, stopped */ runMode mode; /* once, loop, bounce */ depthMode dmode; /* depth on-screen */ BOOL updateControls, showFrameNumber; BOOL noOriginals, fromStream; id panel; /* control panel */ id fpsSlider; /* things in the control panel */ id fNumSlider; id fpsText; id actualFpsText; id nFramesText; id fNumText; id modeButtons; id stateButtons; id depthButtons; id statusText; double oldt; BOOL pingDuringDisplay; Animator *anim; } - initFrame:(const NXRect *) frameRect; - drawSelf:(const NXRect *) rects :(int)count; - makeWindow; - makePanel:(char *)filename; - setFps:(float)fps; - setNoOriginals; - (BOOL)open:sender; - (BOOL)play:sender; - (BOOL)openFile:(char *)filename; - (List *)openAnimDirectory:(char *)filenameRoot; - openMPEGfile:(char *)filename; - addBitmap:bm; - allocateFrames:(List *)frames; - superviewSizeChanged:(NXSize *)old; - renderFrames; - recache; - save:sender; - (BOOL) panelValidateFilenames:sender; // SavePanel's delegate - freeCaches; - freeOriginals; - free; - copy:sender; - fwd:sender; - rev:sender; - move:sender; - stop:sender; - fwdStep:sender; - revStep:sender; - step:(int) direction; - reSize:(NXSize *)s; - expand2x:sender; - reduce50pct:sender; - restore:sender; - modeButtonsChanged:sender; - fNumSliderChanged:sender; - fpsSliderChanged:sender; - pingButtonChanged:sender; - selectStateButton:(runState)b; - depthButtonsChanged:sender; - updateCheckBoxChanged:sender; - frameCheckBoxChanged:sender; // Window's delegate - windowWillClose:sender; - windowDidMiniaturize:sender; - windowDidDeminiaturize:sender; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.