Changeset b412168 in mainline for uspace/lib/trackmod/types/trackmod.h


Ignore:
Timestamp:
2014-11-17T03:25:04Z (9 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6069061
Parents:
ef3da5a (diff), 5042706 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge mainline changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/trackmod/types/trackmod.h

    ref3da5a rb412168  
    4141#include <stdint.h>
    4242
     43enum {
     44        max_key = 96,
     45        keyoff_note = 97
     46};
     47
     48typedef enum {
     49        /** No loop */
     50        tl_no_loop,
     51        /** Forward loop */
     52        tl_forward_loop,
     53        /** Pingpong loop */
     54        tl_pingpong_loop
     55} trackmod_looptype_t;
     56
    4357/** Sample */
    4458typedef struct {
    4559        /** Length in frames */
    4660        size_t length;
     61        /** Bytes per sample */
     62        size_t bytes_smp;
    4763        /** Sample data */
    48         int8_t *data;
     64        void *data;
     65        /** Loop type */
     66        trackmod_looptype_t loop_type;
    4967        /** Loop start position in frames */
    5068        size_t loop_start;
    51         /** Loop length in frames or 0 - no looping */
     69        /** Loop length in frames (> 0) */
    5270        size_t loop_len;
    5371        /** Default volume (0..63) */
    5472        uint8_t def_vol;
     73        /** Relative note */
     74        int rel_note;
     75        /** Finetune value (-8..7) in 1/8 semitones */
     76        int finetune;
    5577} trackmod_sample_t;
     78
     79/** Instrument */
     80typedef struct {
     81        /** Number of samples */
     82        size_t samples;
     83        /** Samples */
     84        trackmod_sample_t *sample;
     85        /** Sample index for each key */
     86        int key_smp[max_key];
     87} trackmod_instr_t;
     88
     89/** Pattern cell */
     90typedef struct {
     91        /** Note */
     92        unsigned note;
     93        /** Sample period */
     94        unsigned period;
     95        /** Instrument number */
     96        unsigned instr;
     97        /** Volume */
     98        uint8_t volume;
     99        /** Effect */
     100        uint16_t effect;
     101} trackmod_cell_t;
    56102
    57103/** Pattern */
     
    62108        size_t channels;
    63109        /** Pattern data */
    64         uint32_t *data;
     110        trackmod_cell_t *data;
    65111} trackmod_pattern_t;
    66112
     
    70116        size_t channels;
    71117        /** Number of samples */
    72         size_t samples;
    73         /** Samples */
    74         trackmod_sample_t *sample;
     118        size_t instrs;
     119        /** Instruments */
     120        trackmod_instr_t *instr;
    75121        /** Number of patterns */
    76122        size_t patterns;
     
    81127        /** Order list */
    82128        size_t *ord_list;
     129        /** Restart pos */
     130        size_t restart_pos;
     131        /** Default BPM */
     132        unsigned def_bpm;
     133        /** Default TPR */
     134        unsigned def_tpr;
    83135} trackmod_module_t;
    84136
     
    92144        /** Sample position (clock ticks within frame) */
    93145        size_t smp_clk;
    94         /** Period */
     146        /** Current period */
    95147        unsigned period;
     148        /** Period after note was processed, zero if no note */
     149        unsigned period_new;
    96150        /** Volume */
    97151        uint8_t volume;
     152        /** Volume slide amount */
     153        int vol_slide;
     154        /** Portamento amount (positive for tone and up portamento,
     155          * negative for down portamento. */
     156        int portamento;
     157        /** Tone portamento target period. */
     158        unsigned period_tgt;
    98159} trackmod_chan_t;
    99160
     
    132193} trackmod_modplay_t;
    133194
    134 /** Pattern cell (decoded) */
    135 typedef struct {
    136         /** Sample period */
    137         unsigned period;
    138         /** Sample number */
    139         unsigned sample;
    140         /** Effect */
    141         unsigned effect;
    142 } trackmod_cell_t;
    143 
    144195#endif
    145196
Note: See TracChangeset for help on using the changeset viewer.