| ... | ... |
@@ -303,3 +303,13 @@ audio_start(int idx, Uint8 *d, Uxn *u) |
| 303 | 303 |
note_off(&channel[idx], duration); |
| 304 | 304 |
} |
| 305 | 305 |
} |
| 306 |
+ |
|
| 307 |
+Uint8 |
|
| 308 |
+audio_get_vu(int instance) {
|
|
| 309 |
+ return channel[instance].sample.env.vol * 255.0f; |
|
| 310 |
+} |
|
| 311 |
+ |
|
| 312 |
+Uint16 |
|
| 313 |
+audio_get_position(int instance) {
|
|
| 314 |
+ return channel[instance].sample.pos; |
|
| 315 |
+} |
| ... | ... |
@@ -70,10 +70,14 @@ clamp(int v, int min, int max) |
| 70 | 70 |
static Uint8 |
| 71 | 71 |
audio_dei(int instance, Uint8 *d, Uint8 port) |
| 72 | 72 |
{
|
| 73 |
- /* TODO: get envelope */ |
|
| 74 | 73 |
switch(port) {
|
| 75 |
- case 0x0: |
|
| 76 | 74 |
case 0x2: |
| 75 |
+ return audio_get_position(instance) >> 8; |
|
| 76 |
+ case 0x3: |
|
| 77 |
+ return audio_get_position(instance); |
|
| 78 |
+ case 0x4: |
|
| 79 |
+ return audio_get_vu(instance); |
|
| 80 |
+ case 0x0: |
|
| 77 | 81 |
case 0x8: |
| 78 | 82 |
case 0xa: |
| 79 | 83 |
case 0xc: return PEEK2(d + port); |