Next: Functions Up: 3 Module playback Previous: Constants

# Data types

This section describes all data types used in MIDAS module playback.

## 3.2.1 MIDASmoduleInfo

    typedef struct
    {
        char        songName[32];
        unsigned    songLength;
        unsigned    numPatterns;
        unsigned    numInstruments;
        unsigned    numChannels;
    } MIDASmoduleInfo;

Module information structure.

### Members

songName
  Module song name, an ASCIIZ string
songLength
  Module song length in number of positions
numPatterns
  Number of patterns in module
numInstruments
  Number of instruments in module
numChannels
  The number of channels the module uses

### Description

This structure is used with the function MIDASgetModuleInfo to query information about an module. MIDASgetModuleInfo fills a MIDASmoduleInfo structure with the information.

## 3.2.2 MIDASinstrumentInfo

    typedef struct
    {
        char        instName[32];
    } MIDASinstrumentInfo;

Instrument information structure.

### Members

instName
  Instrument name, an ASCIIZ string

### Description

This structure is used with the function MIDASgetInstrumentInfo to query information about an instrument in a module. MIDASgetInstrumentInfo fills a MIDASinstrumentInfo structure with the information.

## 3.2.3 MIDASplayStatus

    typedef struct
    {
        unsigned    position;
        unsigned    pattern;
        unsigned    row;
        int         syncInfo;
    } MIDASplayStatus;

Module status information structure.

### Members

position
  Current playback position number
pattern
  Current playback pattern number
row
  Current playback row number
syncInfo
  Latest synchronization command infobyte, -1 if no synchronization command has been encountered yet.

### Description

This structure is used with the function MIDASgetPlayStatus to query the current module playback status. MIDASgetPlayStatus fills a MIDASplayStatus structure with the information.

Some more information about the synchronization commands: In protracker and Scream Tracker 3 modules, the command `Wxx` is used as a music synchronization command. The infobyte of this command is available as the music synchronization command infobyte above.

## 3.2.4 MIDASmodule

    typedef ... MIDASmodule;

### Description

MIDASmodule is a module handle that defines a module that has been loaded into memory.