| 143 | } |
| 144 | |
| 145 | void JASSeqParser::writeReg(JASTrack *track, u32 reg, u32 data) { |
| 146 | track->writeReg(JASRegisterParam::REG3, data); |
| 147 | if (reg < 0x40) { |
| 148 | track->writeReg(JASRegisterParam::RegID(reg), data); |
| 149 | return; |
| 150 | } |
| 151 | switch (reg) { |
| 152 | case 0x40: |
| 153 | case 0x41: |
| 154 | case 0x42: |
| 155 | case 0x43: |
| 156 | case 0x44: |
| 157 | case 0x45: |
| 158 | case 0x46: |
| 159 | case 0x47: |
| 160 | case 0x48: |
| 161 | case 0x49: |
| 162 | case 0x4a: |
| 163 | case 0x4b: |
| 164 | case 0x4c: |
| 165 | case 0x4d: |
| 166 | case 0x4e: |
| 167 | case 0x4f: |
| 168 | track->setPort(reg - 0x40, data); |
| 169 | break; |
| 170 | case 0x60: |
| 171 | case 0x61: |
| 172 | #line 501 |
| 173 | JUT_WARNING_F2("%s", "writeReg for Read-Only Register"); |
| 174 | break; |
| 175 | case 0x62: |
| 176 | track->setTimebase(data); |
| 177 | break; |
| 178 | case 0x63: |
| 179 | track->setTranspose(data); |
| 180 | break; |
| 181 | case 0x64: |
| 182 | track->setBendSense(data); |
| 183 | break; |
| 184 | case 0x65: |
| 185 | track->setGateRate(data); |
| 186 | break; |
| 187 | case 0x66: |
| 188 | track->setSkipSample(data); |
| 189 | break; |
| 190 | case 0x67: |
| 191 | track->setBankNumber(u8(data)); |
| 192 | break; |
| 193 | case 0x68: |
| 194 | track->setProgNumber(u8(data)); |
| 195 | break; |
| 196 | case 0x69: |
| 197 | track->setPanPower(data / 32767.0f); |
| 198 | break; |
| 199 | case 0x6a: |
| 200 | track->setReleasePrio(JSUHiByte(data)); |
| 201 | track->setNoteOnPrio(JSULoByte(data)); |
| 202 | break; |
no test coverage detected