home *** CD-ROM | disk | FTP | other *** search
/ Altsys Virtuoso 2.0K / virtuoso_20k.iso / DemoApps / Graphics / Multimedia / MPEGPlay2.3 / Source / MPEGThread.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-03-08  |  1.1 KB  |  60 lines

  1. // MPEGThread.h - 
  2.  
  3. #include <sys/types.h>
  4. #include <sys/time.h>
  5. #import <mach/cthreads.h>
  6. #import <libc.h>
  7. #import <streams/streams.h>
  8. #import <appkit/View.h>
  9. #import <objc/Object.h>
  10.  
  11. #define FCODE_ABORT       -1
  12. #define FCODE_END        0
  13. #define FP_NUM_INT_DATA 1
  14.  
  15. typedef struct _mpegPacket
  16. {
  17.     msg_header_t    h;
  18.     msg_type_t        t;
  19.     int         fcode;
  20. } mpegPacket;
  21.  
  22. @interface MPEGThread:Object
  23. {
  24.     id        view;
  25.     id        controller;
  26.     int        frameSize;
  27.     port_t    mpegPort;
  28.     cthread_t    cthreadMain;
  29.     FILE *ifp;                    // decode
  30.     char *buffer;
  31.     NXStream *pStream, *mStream;
  32.     char *address;                // video cache
  33.     int len, maxlen;
  34. }
  35.  
  36. /*** Initialization methods ***/
  37. - initSize:(int)size forView:anObject;
  38. - free;
  39.  
  40. /*** Instance methods and Standard C wrapper functions ***/
  41. void receive_fcode(mpegPacket *, id);
  42. - receiveFcode:(mpegPacket *)pkt;
  43.  
  44. - decodeFile:(const char *)mpegFile;
  45. any_t mpeg_thread(any_t);
  46. - mpegThread;
  47. - endDecode;
  48. - abortDecode;
  49.  
  50. @end
  51.  
  52.  
  53. @interface Object(MPEGThreadDelegate)
  54. - setFrameNumber:(int)frame;
  55. @end
  56.  
  57. @interface View(MPEGThreadView)
  58. - setAddress:(char *)anAddress len:(int)aLen maxlen:(int)aMaxlen;
  59. @end
  60.