home *** CD-ROM | disk | FTP | other *** search
/ Geek 6 / Geek-006.iso / linux / video / xmovie-1.5.3.tar.gz / xmovie-1.5.3.tar / xmovie-1.5.3 / xmovie / filebase.h < prev    next >
C/C++ Source or Header  |  2000-11-29  |  2KB  |  73 lines

  1. #ifndef FILEBASE_H
  2. #define FILEBASE_H
  3.  
  4. #include "asset.inc"
  5. #include "file.inc"
  6. #include "mainwindow.inc"
  7. #include "sizes.h"
  8.  
  9. // inherited by every file interpreter
  10. class FileBase
  11. {
  12. public:
  13.     FileBase(Asset *asset, File *file);
  14.     virtual ~FileBase();
  15.  
  16.     int close_file();
  17.     int reset_parameters();
  18.  
  19.     virtual int reset_parameters_derived() { return 0; };
  20.     virtual int read_header() { return 0; };
  21.     virtual int open_file() { return 0; };
  22.     virtual int close_file_derived() { return 0; };
  23.     virtual long get_audio_length() { return 0; };
  24.     virtual long get_video_length() { return 0; };
  25.     virtual int get_position(double &percentage, double &seconds) { return 0; };
  26.     virtual int set_position(double percentage) { return 1; };
  27.     virtual long get_video_position() { return 0; };
  28.     virtual long get_audio_position() { return 0; };
  29.     virtual int end_of_audio() { return 0; };
  30.     virtual int end_of_video() { return 0; };
  31.     virtual int set_video_position(long x) { return 0; };
  32.     virtual int set_audio_position(long x) { return 0; };
  33.     virtual int set_video_stream(int stream) { return 0; };
  34.     virtual int set_audio_stream(int stream) { return 0; };
  35.     virtual int set_cpus(int cpus) { return 0; };
  36.     virtual int set_mmx(int use_mmx) { return 0; };
  37. // Skip a certain number of frames forward.
  38.     virtual int drop_frames(int frames) { return 1; };
  39. // Step back a frame
  40.     virtual int frame_back() { return 1; };
  41.  
  42. // Get optimization strategy
  43.     virtual int yuv_copy_possible() { return 0; };
  44.     virtual int frame_buffer_copy_possible(int color_model) { return 0; };
  45.  
  46. // Read video
  47.     virtual int read_yuv_buffer(char *y_output, char *u_output, char *v_output, int in_x, int in_y, int in_w, int in_h) { return 1; };
  48.     virtual int read_frame_buffer(unsigned char **frame_buffer, int w, int h, int bitmap_color_model) { return 1; };
  49.     virtual int read_frame(unsigned char *frame) { return 0; };
  50.  
  51. // Read audio
  52.     virtual int read_audio(char *buffer, long len) { return 0; };
  53.     virtual int load_into_ram() { return 0; };
  54.     
  55.     File *file;
  56.     MainWindow *mwindow;
  57.  
  58. protected:
  59.     int get_read_buffer(long len);
  60.  
  61.     int internal_byte_order;
  62.     int match4(char *in, char *out);
  63.     int delete_cache();
  64.     Asset *asset;
  65. // for loading into RAM
  66.     char **ram_cache;
  67.     BCBASE_INT16 *read_buffer; // Temporary storage for audio output
  68.     long read_size;   // Sample size of temporary storage
  69.     long cached_frames;
  70. };
  71.  
  72. #endif
  73.