The Simple API
      
        
          Only 3 functions are provided in the library.
          The user will receive an event with some parameters by MML_CALLBACK function that you provided.
          This is really simple way to parse MML text you've ever seen.
        
       
      Initialize
      
        
          MML_RESULT mml_init(MML *handle, MML_CALLBACK callback, void *extobj);
         
       
      Setup
      
        
          MML_RESULT mml_setup(MML *handle, MML_OPTION *option, char *text);
         
       
      Fetch
      
        
          MML_RESULT mml_fetch(MML *handle);
         
       
      
      
      
      
       The Simple Callback Function
      
        
          The definition of the callback function shown in below.
        
       
      Prototype
        typedef void (*MML_CALLBACK)(MML_INFO *p, void *extobj);
      Arguments
      typedef struct {
  MML_TYPE type;
  union {
    MML_ARGS_NOTE note;
    MML_ARGS_REST rest;
    MML_ARGS_TEMPO tempo;
    MML_ARGS_LENGTH length;
    MML_ARGS_VOLUME volume;
    MML_ARGS_OCTAVE octave;
    MML_ARGS_OCTAVE octave_up;
    MML_ARGS_OCTAVE octave_down;
  } args;
} MML_INFO;
      
      
       State Diagram