home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / beaversweeper_v101.zip / src / gtkformat.h < prev    next >
C/C++ Source or Header  |  2003-01-06  |  2KB  |  78 lines

  1. #ifndef __GTK_FORMAT_H__
  2. #define __GTK_FORMAT_H__
  3.  
  4. #include <windows.h>
  5. #include "isSynth.h"
  6.  
  7. #define GTK_CURRENT_VERSION 0x0103
  8. #define GTK_DEFAULT_PATCHANNELS 0x10    // 16 kanaler i varje pattern _ONLY_
  9. #define    GTK_NOTE_OFF 0xff
  10.  
  11.  
  12. #define GTK_DEFAULT_BPM 125
  13. #define GTK_DEFAULT_PATTICK 6
  14. #define GTK_DEFAULT_SEQTICK 16
  15.  
  16. typedef struct GTK GTK;
  17. typedef struct GTK_SEQCHANNEL GTK_SEQCHANNEL;
  18. typedef struct GTK_SEQPOS GTK_SEQPOS;
  19. typedef struct GTK_PATTERN GTK_PATTERN;
  20. typedef struct GTK_PATTERNPOS GTK_PATTERNPOS;
  21.  
  22.  
  23. // multiplier for sequence tick sleep
  24. #define GTK_SEQ_MUL 16
  25. #define GTK_FILEFLAG_SEQPOS_NONE 0
  26. #define GTK_FILEFLAG_SEQPOS_PATTERN 0x01
  27. #define GTK_FILEFLAG_SEQPOS_TRANSPOSE 0x02
  28. #define GTK_FILEFLAG_SEQPOS_FX 0x04
  29. #define GTK_FILEFLAG_SEQPOS_PARAM1 0x08
  30. #define GTK_FILEFLAG_SEQPOS_PARAM2 0x10
  31. #define GTK_FILEFLAG_SEQPOS_PARAM3 0x20
  32. #define GTK_FILEFLAG_SEQPOS_PARAM4 0x40
  33. #define GTK_FILEFLAG_SEQPOS_PARAM5 0x80
  34. #define GTK_FILEFLAG_SEQPOS_PARAM6 0x100
  35.  
  36.  
  37. struct GTK_SEQCHANNEL
  38. {
  39.     unsigned short len;     // !VERSION! 0102 =  unsigned char len;
  40.     GTK_SEQPOS *positions;
  41. };
  42. struct GTK_SEQPOS
  43. {
  44.     unsigned char pattern;
  45.     char transpose;
  46.     unsigned char fx, param1, param2, param3,param4,param5,param6;
  47. };
  48.  
  49. struct GTK_PATTERN
  50. {
  51.     unsigned short len;     //    !VERSION! 0102 = unsigned char len;
  52.     GTK_PATTERNPOS **patterndata;
  53. };
  54. struct GTK_PATTERNPOS
  55. {
  56.     unsigned char note,velocity,fx,param;
  57. };
  58. struct GTK
  59. {
  60.     unsigned char num_channels,num_patterns,num_instruments;    
  61.     unsigned char def_bpm,def_pattick,internal_seqtick;
  62.     unsigned short def_seqtick;
  63.     GTK_SEQCHANNEL *channels;
  64.     GTK_PATTERN *patterns;    
  65.  
  66. };
  67.  
  68.  
  69.  
  70.  
  71. GTK *gtk_load (isSynth *synth,char *fname);
  72. int gtk_save (GTK *gtk,isSynth *synth,char *fname);
  73. GTK *gtk_create (void);
  74. int gtk_clearmod (GTK *mod);
  75.  
  76.  
  77. #endif
  78.