?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef _PSG_H_
  2. #define _PSG_H_
  3.  
  4. struct frame_list
  5. {
  6.         struct frame_base * frame;
  7.  
  8.         struct frame_list * next;
  9. };
  10.  
  11.  
  12.  
  13. // frame types
  14. #define FRAME_AY (1)
  15. //#define FRAME_DOUBLE_AY (2)
  16. //#define ...
  17.  
  18.  
  19. struct frame_base
  20. {
  21.         uint8_t type;
  22. };
  23.  
  24. struct frame_ay
  25. {
  26.         struct frame_base base;
  27.  
  28.         uint8_t regs[14];
  29. };
  30.  
  31.  
  32. struct psg_file
  33. {
  34.         char * filename;
  35.  
  36.         size_t size;
  37.  
  38.         uint8_t * bytes;
  39. };
  40.  
  41.  
  42.  
  43.  
  44. struct psg_file * load_psg_file(char * filename);
  45.  
  46. void free_psg_file(struct psg_file * file);
  47.  
  48. struct frame_list * build_psg_frames(struct psg_file * psg);
  49.  
  50. void free_psg_frames(struct frame_list * head);
  51.  
  52.  
  53.  
  54.  
  55. #endif // _PSG_H_
  56.  
  57.