bool RawPlayer::load(const std::string& filename) { FileStream f(filename); if(!f) return false; // file validation section char id[8]; f.read(id, 8); if(!std::equal(id, id + 8, "RAWADATA")) { return false; } // load section uint16_t clock; f >> clock; setInitialSpeed(clock); setCurrentSpeed(clock); BOOST_ASSERT(f.pos() == 10); static_assert(sizeof(TrackData) == 2, "Ooops"); m_data.resize((f.size() - 10) / 2); f.read(m_data.data(), m_data.size()); addOrder(0); rewind(0); return true; }
void RawPlayer::rewind(const boost::optional<size_t>&) { m_dataPosition = m_delay = 0; setCurrentSpeed(initialSpeed()); m_songend = false; getOpl()->writeReg(1, 32); // go to 9 channel mode }
void Pokemon::SetStatsForLevel() { setHP(round(ceil(2 * getBaseHP() + 31) * getLevel() / 100 + getLevel() + 10)); setAtt(round(ceil(2 * getBaseAtt() + 31) * getLevel() / 100 + 5)); setDef(round(ceil(2 * getBaseDef() + 31) * getLevel() / 100 + 5)); setSpeed(round(ceil(2 * getBaseSpeed() + 31) * getLevel() / 100 + 5)); setCurrentHP(getHP()); setCurrentAtt(getAtt()); setCurrentDef(getDef()); setCurrentSpeed(getSpeed()); }
bool RawPlayer::update() { if(m_dataPosition >= m_data.size()) return false; if(m_delay > 0) { --m_delay; return !m_songend; } while(m_dataPosition < m_data.size()) { const auto& d = m_data[m_dataPosition++]; bool setspeed = false; switch(d.command) { case 0: BOOST_ASSERT(d.param > 0); m_delay = d.param - 1; break; case 2: if(d.param != 0) { setCurrentSpeed(d.param + (d.command * 256)); setspeed = true; } else { ; //FIXME sto opl->setchip(data[pos].param - 1); } break; case 0xff: if(d.param == 0xff) { rewind(0); // auto-rewind song m_songend = true; return !m_songend; } break; default: getOpl()->writeReg(d.command, d.param); break; } if(!setspeed && d.command == 0) break; } return !m_songend; }
void Controller::initController(int channel, int velocity, int base_octave, int transpose, int speed) { setCurrentChannel(channel); setCurrentVelocity(velocity); setCurrentBase_octave(base_octave); setCurrentTranspose(transpose); setCurrentSpeed(speed); ui->label_dp_key_pic->setPixmap(QPixmap(":/images/C Major_A Minor.jpg")); ui->label_dp_key->setText("C Major | A Minor"); ui->btn_note_24->setChecked(true); ui->label_dp_meter_pic->setPixmap(QPixmap(":/images/4_4.png")); ui->label_dp_meter->setText(QString::fromUtf8("4/4拍")); currentStatus->setKey(0); currentStatus->setMeter(FOUR4); currentStatus->setSpeed(speed); currentStatus->setTone(1); currentStatus->setVolume(velocity); }
int Controller::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QToolBox::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: channelChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: velocityChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 2: base_octaveChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 3: transposeChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 4: enableEdit((*reinterpret_cast< bool(*)>(_a[1]))); break; case 5: durationChanged((*reinterpret_cast< QAction*(*)>(_a[1]))); break; case 6: pauseFlag((*reinterpret_cast< int(*)>(_a[1]))); break; case 7: dotEnable((*reinterpret_cast< bool(*)>(_a[1]))); break; case 8: setCurrentChannel((*reinterpret_cast< int(*)>(_a[1]))); break; case 9: setCurrentVelocity((*reinterpret_cast< int(*)>(_a[1]))); break; case 10: setCurrentBase_octave((*reinterpret_cast< int(*)>(_a[1]))); break; case 11: setCurrentTranspose((*reinterpret_cast< int(*)>(_a[1]))); break; case 12: setCurrentSpeed((*reinterpret_cast< int(*)>(_a[1]))); break; case 13: setCurrentMeter((*reinterpret_cast< Meter(*)>(_a[1]))); break; case 14: setCurrentKey((*reinterpret_cast< int(*)>(_a[1]))); break; case 15: on_btn_note_dot_clicked((*reinterpret_cast< bool(*)>(_a[1]))); break; case 16: on_btn_run_clicked(); break; case 17: on_slider_speed_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 18: on_slider_meter_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 19: on_slider_key_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 20: on_slider_transpose_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 21: on_slider_base_octave_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 22: on_slider_channel_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 23: on_slider_velocity_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 24: durationCheck((*reinterpret_cast< int(*)>(_a[1]))); break; case 25: pauseCheck((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 26; } return _id; }