| 177 | } |
| 178 | |
| 179 | bool Rjp1::executeSfxSequenceOp(Rjp1Channel *channel, uint8 code, const uint8 *&p) { |
| 180 | bool loop = true; |
| 181 | switch (code & 7) { |
| 182 | case 0: |
| 183 | _vars.activeChannelsMask &= ~(1 << _vars.currentChannel); |
| 184 | loop = false; |
| 185 | stopPaula(); |
| 186 | break; |
| 187 | case 1: |
| 188 | setRelease(channel); |
| 189 | loop = false; |
| 190 | break; |
| 191 | case 2: |
| 192 | channel->loopSeqCount = *p++; |
| 193 | break; |
| 194 | case 3: |
| 195 | channel->loopSeq2Count = *p++; |
| 196 | break; |
| 197 | case 4: |
| 198 | code = *p++; |
| 199 | if (code != 0) { |
| 200 | setupInstrument(channel, code); |
| 201 | } |
| 202 | break; |
| 203 | case 7: |
| 204 | loop = false; |
| 205 | break; |
| 206 | default: |
| 207 | break; |
| 208 | } |
| 209 | return loop; |
| 210 | } |
| 211 | |
| 212 | bool Rjp1::executeSongSequenceOp(Rjp1Channel *channel, uint8 code, const uint8 *&p) { |
| 213 | bool loop = true; |
nothing calls this directly
no outgoing calls
no test coverage detected