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 } 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;
movieFrameStruct *movieFrame;
int numFrames;
int currentFrameIndex;
int frameCount;
NXSize maxSize; /* size of biggest frame (for restore: method) */
float frameRate;
double oldTime;
runState state; /* fwd, back, stopped */
runMode mode; /* once, loop, bounce */
depthMode dmode; /* depth on-screen */
BOOL updateControls, showFrameNumber;
BOOL noOriginals, fromStream, loading, willClose;
int stopFrame;
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;
NXModalSession panelSession, windowSession;
}
- initFrame:(const NXRect *) frameRect;
- drawSelf:(const NXRect *) rects :(int)count;
- makeWindow;
- makePanel:(char *)filename;
- setFps:(float)fps;
- setNoOriginals;
- (BOOL)open:sender;
- (BOOL)load:sender;
- (BOOL)openFile:(char *)filename;
- (List *)openAnimDirectory:(char *)filenameRoot;
- openMPEGfile:(char *)filename;
- (BOOL)openAnimation:(const char *)filename;
- addBitmap:bm copy:(BOOL)copyFlag;
- 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;
- beginModal;
- runModal;
- endModal;
- updateControls;
- freeFrames;
// 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.