mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-19 04:34:51 -04:00
98 lines
2.5 KiB
C
98 lines
2.5 KiB
C
#ifndef _MGIFEACT_H
|
|
#include <mgifmem.h>
|
|
|
|
#define _MGIFEACT_H
|
|
|
|
#define EX_NO_ERROR 0
|
|
#define EX_NOT_FOUND -1
|
|
#define EX_NO_SOUND -2
|
|
#define EX_READ_ERROR -3
|
|
#define EX_SOUND_ERROR -4
|
|
|
|
typedef struct frame_defs
|
|
{
|
|
long frame_start;
|
|
long display_start;
|
|
long pal_start;
|
|
long sound_start;
|
|
word displ_type;
|
|
long display_size;
|
|
long track_size;
|
|
char changed;
|
|
char last_vol[2];
|
|
long vol_save;
|
|
}FRAME_DEFS_T;
|
|
|
|
extern FRAME_DEFS_T *mgf_frames;
|
|
extern MGIF_HEADER_T mgf_header;
|
|
extern char *mgif_filename;
|
|
extern long total_frames;
|
|
extern int samples_total;
|
|
extern word frame_shift;
|
|
|
|
int examine_mgif_file(char (*progress)(int perc));
|
|
void set_mgif(char *filename);
|
|
|
|
typedef struct track_data_t
|
|
{
|
|
char vpoint1;
|
|
char vpoint2;
|
|
char changed;
|
|
int time; //0 odpovida restartu. Pak vpointy neplati
|
|
struct track_data_t *next;
|
|
}TRACK_DATA_T;
|
|
|
|
typedef struct track_info_t
|
|
{
|
|
char *sample_name;
|
|
char *user_name;
|
|
int loop_start;
|
|
int loop_end;
|
|
TRACK_DATA_T *levy,*pravy;
|
|
int *starts;
|
|
int starts_count;
|
|
char muted;
|
|
}TRACK_INFO_T;
|
|
|
|
extern TRACK_INFO_T *smp_prg;
|
|
|
|
int add_sample(char *sample_name);
|
|
void remove_sample(int id);
|
|
void build_sample_list(void *list);
|
|
char get_vpoint(TRACK_DATA_T *track,int frame,TRACK_DATA_T *vp); //neexistuje-li spocita se (return 1)
|
|
void set_vpoint(TRACK_DATA_T **track,int frame,int vp1,int vp2); //pokud neexistuje tak se vytvori
|
|
void add_vpoint(TRACK_DATA_T **track,int frame);
|
|
void add_restart(TRACK_INFO_T *ti,int frame);
|
|
void delete_restart(TRACK_INFO_T *ti,int frame);
|
|
void delete_vpoint(TRACK_DATA_T **track,int frame);
|
|
void change_vpoint_spacing(TRACK_DATA_T *track,int frame,int value);
|
|
|
|
void lzw_decode(void *source,char *target);
|
|
void init_lzw_compressor(int dic_size);
|
|
void reinit_lzw();
|
|
void done_lzw_compressor();
|
|
|
|
void preview_block(int start_frame,int x, int y);
|
|
void stop_preview();
|
|
void build_frame(int frame_num,int *exit);//TASK!
|
|
#pragma aux build_frame parm[]
|
|
|
|
void save_project(char *project_name);
|
|
int load_project(char *prj_name);
|
|
void *get_project_name(char *name);
|
|
|
|
void read_vol_table(TRACK_INFO_T *tr);
|
|
void compare_vol_table(TRACK_INFO_T *tr);
|
|
void set_vol_table_nul(void);
|
|
|
|
void set_changed_full_track(TRACK_INFO_T *tr);
|
|
void warn_size_mistmach(void);
|
|
|
|
int get_inserted_frames(int frame); //tracuje film a odhaduje kolik framu bylo pridano
|
|
int get_deleted_frames(void);
|
|
void insert_global(int frame,int count); //prida count framu od framu frame.
|
|
void delete_global(int frame,int count); //prida count framu od framu frame.
|
|
|
|
|
|
|
|
#endif
|