Changeset 43dd72b7 in mainline for uspace/lib/trackmod/types/trackmod.h
- Timestamp:
- 2014-10-13T17:31:01Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- affbdde
- Parents:
- 18cc83c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/trackmod/types/trackmod.h
r18cc83c r43dd72b7 41 41 #include <stdint.h> 42 42 43 enum { 44 max_key = 96, 45 keyoff_note = 97 46 }; 47 48 typedef 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 43 57 /** Sample */ 44 58 typedef struct { 45 59 /** Length in frames */ 46 60 size_t length; 61 /** Bytes per sample */ 62 size_t bytes_smp; 47 63 /** Sample data */ 48 int8_t *data; 64 void *data; 65 /** Loop type */ 66 trackmod_looptype_t loop_type; 49 67 /** Loop start position in frames */ 50 68 size_t loop_start; 51 /** Loop length in frames or 0 - no looping*/69 /** Loop length in frames (> 0) */ 52 70 size_t loop_len; 53 71 /** Default volume (0..63) */ 54 72 uint8_t def_vol; 73 /** Relative note */ 74 int rel_note; 75 /** Finetune value (-8..7) in 1/8 semitones */ 76 int finetune; 55 77 } trackmod_sample_t; 78 79 /** Instrument */ 80 typedef 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 */ 90 typedef 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; 56 102 57 103 /** Pattern */ … … 62 108 size_t channels; 63 109 /** Pattern data */ 64 uint32_t *data;110 trackmod_cell_t *data; 65 111 } trackmod_pattern_t; 66 112 … … 70 116 size_t channels; 71 117 /** 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; 75 121 /** Number of patterns */ 76 122 size_t patterns; … … 81 127 /** Order list */ 82 128 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; 83 135 } trackmod_module_t; 84 136 … … 92 144 /** Sample position (clock ticks within frame) */ 93 145 size_t smp_clk; 94 /** Period */146 /** Current period */ 95 147 unsigned period; 148 /** Period after note was processed, zero if no note */ 149 unsigned period_new; 96 150 /** Volume */ 97 151 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; 98 159 } trackmod_chan_t; 99 160 … … 132 193 } trackmod_modplay_t; 133 194 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 144 195 #endif 145 196
Note:
See TracChangeset
for help on using the changeset viewer.