1 /*  _______         ____    __         ___    ___
2  * \    _  \       \    /  \  /       \   \  /   /       '   '  '
3  *  |  | \  \       |  |    ||         |   \/   |         .      .
4  *  |  |  |  |      |  |    ||         ||\  /|  |
5  *  |  |  |  |      |  |    ||         || \/ |  |         '  '  '
6  *  |  |  |  |      |  |    ||         ||    |  |         .      .
7  *  |  |_/  /        \  \__//          ||    |  |
8  * /_______/ynamic    \____/niversal  /__\  /____\usic   /|  .  . ibliotheque
9  *                                                      /  \
10  *                                                     / .  \
11  * itmisc.c - Miscellaneous functions relating        / / \  \
12  *            to module files.                       | <  /   \_
13  *                                                   |  \/ /\   /
14  * By entheh.                                         \_  /  > /
15  *                                                      | \ / /
16  *                                                      |  ' /
17  *                                                       \__/
18  */
19 
20 #include "dumb.h"
21 #include "internal/it.h"
22 
23 
24 
duh_get_it_sigdata(DUH * duh)25 DUMB_IT_SIGDATA *duh_get_it_sigdata(DUH *duh)
26 {
27 	return duh_get_raw_sigdata(duh, 0, SIGTYPE_IT);
28 }
29 
30 
31 
dumb_it_sd_get_n_orders(DUMB_IT_SIGDATA * sd)32 int dumb_it_sd_get_n_orders(DUMB_IT_SIGDATA *sd)
33 {
34 	return sd ? sd->n_orders : 0;
35 }
36 
37 
38 
dumb_it_sd_get_initial_global_volume(DUMB_IT_SIGDATA * sd)39 int dumb_it_sd_get_initial_global_volume(DUMB_IT_SIGDATA *sd)
40 {
41 	return sd ? sd->global_volume : 0;
42 }
43 
44 
45 
dumb_it_sd_set_initial_global_volume(DUMB_IT_SIGDATA * sd,int gv)46 void dumb_it_sd_set_initial_global_volume(DUMB_IT_SIGDATA *sd, int gv)
47 {
48 	if (sd) sd->global_volume = gv;
49 }
50 
51 
52 
dumb_it_sd_get_mixing_volume(DUMB_IT_SIGDATA * sd)53 int dumb_it_sd_get_mixing_volume(DUMB_IT_SIGDATA *sd)
54 {
55 	return sd ? sd->mixing_volume : 0;
56 }
57 
58 
59 
dumb_it_sd_set_mixing_volume(DUMB_IT_SIGDATA * sd,int mv)60 void dumb_it_sd_set_mixing_volume(DUMB_IT_SIGDATA *sd, int mv)
61 {
62 	if (sd) sd->mixing_volume = mv;
63 }
64 
65 
66 
dumb_it_sd_get_initial_speed(DUMB_IT_SIGDATA * sd)67 int dumb_it_sd_get_initial_speed(DUMB_IT_SIGDATA *sd)
68 {
69 	return sd ? sd->speed : 0;
70 }
71 
72 
73 
dumb_it_sd_set_initial_speed(DUMB_IT_SIGDATA * sd,int speed)74 void dumb_it_sd_set_initial_speed(DUMB_IT_SIGDATA *sd, int speed)
75 {
76 	if (sd) sd->speed = speed;
77 }
78 
79 
80 
dumb_it_sd_get_initial_tempo(DUMB_IT_SIGDATA * sd)81 int dumb_it_sd_get_initial_tempo(DUMB_IT_SIGDATA *sd)
82 {
83 	return sd ? sd->tempo : 0;
84 }
85 
86 
87 
dumb_it_sd_set_initial_tempo(DUMB_IT_SIGDATA * sd,int tempo)88 void dumb_it_sd_set_initial_tempo(DUMB_IT_SIGDATA *sd, int tempo)
89 {
90 	if (sd) sd->tempo = tempo;
91 }
92 
93 
94 
dumb_it_sd_get_initial_channel_volume(DUMB_IT_SIGDATA * sd,int channel)95 int dumb_it_sd_get_initial_channel_volume(DUMB_IT_SIGDATA *sd, int channel)
96 {
97 	ASSERT(channel >= 0 && channel < DUMB_IT_N_CHANNELS);
98 	return sd ? sd->channel_volume[channel] : 0;
99 }
100 
dumb_it_sd_set_initial_channel_volume(DUMB_IT_SIGDATA * sd,int channel,int volume)101 void dumb_it_sd_set_initial_channel_volume(DUMB_IT_SIGDATA *sd, int channel, int volume)
102 {
103 	ASSERT(channel >= 0 && channel < DUMB_IT_N_CHANNELS);
104 	if (sd) sd->channel_volume[channel] = volume;
105 }
106 
107 
108 
dumb_it_sr_get_current_order(DUMB_IT_SIGRENDERER * sr)109 int dumb_it_sr_get_current_order(DUMB_IT_SIGRENDERER *sr)
110 {
111 	return sr ? sr->order : -1;
112 }
113 
114 
115 
dumb_it_sr_get_current_row(DUMB_IT_SIGRENDERER * sr)116 int dumb_it_sr_get_current_row(DUMB_IT_SIGRENDERER *sr)
117 {
118 	return sr ? sr->row : -1;
119 }
120 
121 
122 
dumb_it_sr_get_global_volume(DUMB_IT_SIGRENDERER * sr)123 int dumb_it_sr_get_global_volume(DUMB_IT_SIGRENDERER *sr)
124 {
125 	return sr ? sr->globalvolume : 0;
126 }
127 
128 
129 
dumb_it_sr_set_global_volume(DUMB_IT_SIGRENDERER * sr,int gv)130 void dumb_it_sr_set_global_volume(DUMB_IT_SIGRENDERER *sr, int gv)
131 {
132 	if (sr) sr->globalvolume = gv;
133 }
134 
135 
136 
dumb_it_sr_get_tempo(DUMB_IT_SIGRENDERER * sr)137 int dumb_it_sr_get_tempo(DUMB_IT_SIGRENDERER *sr)
138 {
139 	return sr ? sr->tempo : 0;
140 }
141 
142 
143 
dumb_it_sr_set_tempo(DUMB_IT_SIGRENDERER * sr,int tempo)144 void dumb_it_sr_set_tempo(DUMB_IT_SIGRENDERER *sr, int tempo)
145 {
146 	if (sr) sr->tempo = tempo;
147 }
148 
149 
150 
dumb_it_sr_get_speed(DUMB_IT_SIGRENDERER * sr)151 int dumb_it_sr_get_speed(DUMB_IT_SIGRENDERER *sr)
152 {
153 	return sr ? sr->speed : 0;
154 }
155 
156 
157 
dumb_it_sr_set_speed(DUMB_IT_SIGRENDERER * sr,int speed)158 void dumb_it_sr_set_speed(DUMB_IT_SIGRENDERER *sr, int speed)
159 {
160 	if (sr) sr->speed = speed;
161 }
162 
163 
164 
dumb_it_sr_get_channel_volume(DUMB_IT_SIGRENDERER * sr,int channel)165 int dumb_it_sr_get_channel_volume(DUMB_IT_SIGRENDERER *sr, int channel)
166 {
167 	return sr ? sr->channel[channel].channelvolume : 0;
168 }
169 
170 
171 
dumb_it_sr_set_channel_volume(DUMB_IT_SIGRENDERER * sr,int channel,int volume)172 void dumb_it_sr_set_channel_volume(DUMB_IT_SIGRENDERER *sr, int channel, int volume)
173 {
174 	if (sr) sr->channel[channel].channelvolume = volume;
175 }
176