void CLogClientOp::RunL() { LOGTEXT2("CLogClientOp::RunL(%d)", iStatus.Int()); User::LeaveIfError(iStatus.Int()); // Set ourselves up - make the actual request? if (iData().iOperationId == KLogNullOperationId) { // Get the id of the operation iData().iOperationId = iSession.AllocateIdOperation(); InitiateRequestToServerL(); SetActive(); } else { // Finish off the request iData().iOperationId = KLogNullOperationId; TInt result = iStatus.Int(); CompleteL(result); User::RequestComplete(iObserver, result); } LOGTEXT("CLogClientOp::RunL() - end"); }
void jobSet(const QStringList &jobSetFiles, const QString &outFile) { qDebug() << __FUNCTION__ << jobSetFiles.at(0) << jobSetFiles.at(1) << jobSetFiles.at(2) << outFile; QFile Wfile(outFile); if (!Wfile.open(QIODevice::WriteOnly)) { qDebug() << "open " << outFile << "error."; return; } QDataStream iData(&Wfile); foreach(QString FilePath, jobSetFiles) { QFile RFile(FilePath); if (!RFile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "open " << FilePath << "error."; return; } QString strTmp; QStringList list; qint32 i; QVector<Info_jobAdd> vec; Info_jobAdd job; RFile.readLine(1000); //第一行是标题 while (!RFile.atEnd()) { i = 0; strTmp = RFile.readLine(1000); list = strTmp.split("\t"); job.level = list.at(i++).toInt(); job.exp = list.at(i++).toInt(); job.hp = list.at(i++).toInt(); job.mp = list.at(i++).toInt(); job.dc1 = list.at(i++).toInt(); job.dc2 = list.at(i++).toInt(); job.mc1 = list.at(i++).toInt(); job.mc2 = list.at(i++).toInt(); job.sc1 = list.at(i++).toInt(); job.sc2 = list.at(i++).toInt(); job.ac = list.at(i++).toInt(); job.mac = list.at(i++).toInt(); vec.append(job); } RFile.close(); iData << vec.size(); //单个职业设定文件长度。 for (qint32 i = 0; i < vec.size(); i++) { iData << vec[i].level << vec[i].exp << vec[i].hp << vec[i].mp << vec[i].dc1 << vec[i].dc2 << vec[i].mc1 << vec[i].mc2 << vec[i].sc1 << vec[i].sc2 << vec[i].ac << vec[i].mac; } }
void Skill_basic(const QString &inFile, const QString &outFile) { qDebug() << __FUNCTION__ << inFile << outFile; QFile Rfile(inFile); if (!Rfile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "open " << inFile << "error."; return; } QFile Wfile(outFile); if (!Wfile.open(QIODevice::WriteOnly)) { qDebug() << "open " << outFile << "error."; return; } QString strTmp; QStringList list; quint32 i, ID, icon, lv, cd[4], type, no; QString name, descr, strImgPath; QDataStream iData(&Wfile); Rfile.readLine(1000); //第一行是标题 while (!Rfile.atEnd()) { strTmp = Rfile.readLine(1000); if (strTmp.isEmpty() || strTmp.isNull()) { //防止文件尾部有空白行。 break; } list = strTmp.split("\t"); i = 0; ID = list.at(i++).toUInt(); name = list.at(i++); icon = list.at(i++).toUInt(); lv = list.at(i++).toUInt(); cd[0] = list.at(i++).toUInt(); cd[1] = list.at(i++).toUInt(); cd[2] = list.at(i++).toUInt(); cd[3] = list.at(i++).toUInt(); type = list.at(i++).toUInt(); no = list.at(i++).toUInt(); descr = list.at(i++); iData << ID << name << icon << lv << cd[0] << cd[1] << cd[2] << cd[3] << type << no << descr; } Rfile.close(); Wfile.close(); qDebug() << __FUNCTION__ << "run over"; test_skill_basic(outFile); }
TInt CLogClientOp::DoStartL() { iData().iOperationId = iSession.AllocateIdOperation(); InitiateRequestToServerL(); User::WaitForRequest(iStatus); //We have an asynchronous request completed synchronously. //We have to do some iStatus cleanups. TRequestStatus status;//New TRequestStatus local variable. The default constructor will set iFlags data memebr to 0. status = iStatus.Int();//Only iStatus data member getzs initialized. iStatus = status;//Return back the same iStatus value but with iFlags data memeber cleared. User::LeaveIfError(iStatus.Int()); TInt result = iStatus.Int(); CompleteL(result); iData().iOperationId = KLogNullOperationId; return result; }
void skill_buff(const QString &inFile, const QString &outFile) { qDebug() << __FUNCTION__ << inFile << outFile; QFile Rfile(inFile); if (!Rfile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "open " << inFile << "error."; return; } QFile Wfile(outFile); if (!Wfile.open(QIODevice::WriteOnly)) { qDebug() << "open " << outFile << "error."; return; } QString strTmp, name; QStringList list; qint32 i, ID, icon, time, type, targets, effectType, basic, add; bool control; QDataStream iData(&Wfile); Rfile.readLine(1000); //第一行是标题 while (!Rfile.atEnd()) { strTmp = Rfile.readLine(1000); if (strTmp.isEmpty() || strTmp.isNull()) { //防止文件尾部有空白行。 break; } list = strTmp.split("\t"); i = 0; ID = list.at(i++).toInt(); name = list.at(i++); icon = list.at(i++).toInt(); time = list.at(i++).toInt(); control = (list.at(i++).toInt() == 1); type = list.at(i++).toInt(); targets = list.at(i++).toInt(); effectType = list.at(i++).toInt(); basic = list.at(i++).toInt(); add = list.at(i++).toInt(); iData << ID << name << icon << time << control << type << targets << effectType << basic << add; } Rfile.close(); Wfile.close(); qDebug() << __FUNCTION__ << "run over"; test_skill_buff(outFile); }
CLogClientOp::CLogClientOp(RLogSession& aSession, CLogPackage& aPackage, TLogOperationType aType, TInt aPriority) : CActive(aPriority), iPackage(aPackage), iSession(aSession) // // Base client side operation // { iData().iOperationType = aType; CActiveScheduler::Add(this); }
void CLogClientOp::DoCancel() // // Cancel the request to the server if we initiated one // { LOGTEXT2("CLogClientOp::DoCancel() - OperationId: %d", iData().iOperationId); // Cancel this operation if we have an id if (iData().iOperationId > 0) { iSession.Send(ELogOperationCancel, TIpcArgs(&iData)); // iData().iOperationId = KLogNullOperationId; } User::RequestComplete(iObserver, KErrCancel); LOGTEXT("CLogClientOp::DoCancel() - end"); }
TInt CLogClientOp::Start() // // Synchronous way of running operations // { TInt result = KErrNone; TRAP(result, result = DoStartL()); iData().iOperationId = KLogNullOperationId; return result; }
void skill_summon(const QString &inFile, const QString &outFile) { qDebug() << __FUNCTION__ << inFile << outFile; QFile Rfile(inFile); if (!Rfile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "open " << inFile << "error."; return; } QFile Wfile(outFile); if (!Wfile.open(QIODevice::WriteOnly)) { qDebug() << "open " << outFile << "error."; return; } QString strTmp; QStringList list; qint32 i, ID, photo, type, hp, damage1, damage2, defense; QDataStream iData(&Wfile); Rfile.readLine(1000); //第一行是标题 while (!Rfile.atEnd()) { strTmp = Rfile.readLine(1000); if (strTmp.isEmpty() || strTmp.isNull()) { //防止文件尾部有空白行。 break; } list = strTmp.split("\t"); i = 0; ID = list.at(i++).toInt(); photo = list.at(i++).toInt(); type = list.at(i++).toInt(); hp = list.at(i++).toInt(); damage1 = list.at(i++).toInt(); damage2 = list.at(i++).toInt(); defense = list.at(i++).toInt(); iData << ID << photo << type << hp << damage1 << damage2 << defense; } Rfile.close(); Wfile.close(); qDebug() << __FUNCTION__ << "run over"; test_skill_summon(outFile); }
void skill_treat(const QString &inFile, const QString &outFile) { qDebug() << __FUNCTION__ << inFile << outFile; QFile Rfile(inFile); if (!Rfile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "open " << inFile << "error."; return; } QFile Wfile(outFile); if (!Wfile.open(QIODevice::WriteOnly)) { qDebug() << "open " << outFile << "error."; return; } QString strTmp, name; QStringList list; qint32 i, ID, targets, hpr_basic, hpr_add; QDataStream iData(&Wfile); Rfile.readLine(1000); //第一行是标题 while (!Rfile.atEnd()) { strTmp = Rfile.readLine(1000); if (strTmp.isEmpty() || strTmp.isNull()) { //防止文件尾部有空白行。 break; } list = strTmp.split("\t"); i = 0; ID = list.at(i++).toInt(); name = list.at(i++); targets = list.at(i++).toInt(); hpr_basic = list.at(i++).toInt(); hpr_add = list.at(i++).toInt(); iData << ID << name << targets << hpr_basic << hpr_add; } Rfile.close(); Wfile.close(); qDebug() << __FUNCTION__ << "run over"; test_skill_treat(outFile); }
void Equip(const QString &inFile, const QString &outFile) { qDebug() << __FUNCTION__ << inFile << outFile; QFile Rfile(inFile); if (!Rfile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "open " << inFile << "error."; return; } QFile Wfile(outFile); if (!Wfile.open(QIODevice::WriteOnly)) { qDebug() << "open " << outFile << "error."; return; } QString strTmp; QStringList list; int i = 0, count = 0; QImage img; quint32 ID, photo, lv, st, sbv, sgv, luck, acc, sacred, ag, spd, md, ep, ed, ac1, ac2, mac1, mac2, dc1, dc2, mc1, mc2, sc1, sc2, need, needLvl, price; QString name, strImgPath; QDataStream iData(&Wfile); Rfile.readLine(1000); //第一行是标题 while (!Rfile.atEnd()) { strTmp = Rfile.readLine(1000); if (strTmp.isEmpty() || strTmp.isNull()) { //防止文件尾部有空白行。 break; } list = strTmp.split("\t"); i = 0; ID = list.at(i++).toUInt(); name = list.at(i++); photo = list.at(i++).toUInt(); strImgPath = QString("./Resources/equip/"); strImgPath += QString::number(photo) + QString(".png"); if (!QFile::exists(strImgPath)) { strImgPath = QString("./Resources/equip/0.png"); } img = QImage(strImgPath); if (img.isNull()) { qDebug() << "No Head:" << strImgPath; break; } lv = list.at(i++).toUInt(); st = list.at(i++).toUInt(); sbv = list.at(i++).toUInt(); sgv = list.at(i++).toUInt(); luck = list.at(i++).toUInt(); acc = list.at(i++).toUInt(); sacred = list.at(i++).toUInt(); ag = list.at(i++).toUInt(); spd = list.at(i++).toUInt(); md = list.at(i++).toUInt(); ep = list.at(i++).toUInt(); ed = list.at(i++).toUInt(); ac1 = list.at(i++).toUInt(); ac2 = list.at(i++).toUInt(); mac1 = list.at(i++).toUInt(); mac2 = list.at(i++).toUInt(); dc1 = list.at(i++).toUInt(); dc2 = list.at(i++).toUInt(); mc1 = list.at(i++).toUInt(); mc2 = list.at(i++).toUInt(); sc1 = list.at(i++).toUInt(); sc2 = list.at(i++).toUInt(); need = list.at(i++).toUInt(); needLvl = list.at(i++).toUInt(); price = list.at(i++).toUInt(); iData << ID << name << img << lv << st << sbv << sgv << luck << acc << sacred << ag << spd << md << ep << ed; iData << ac1 << ac2 << mac1 << mac2 << dc1 << dc2 << mc1 << mc2 << sc1 << sc2 << need << needLvl << price; ++count; } Rfile.close(); Wfile.close(); qDebug() << __FUNCTION__ << "run over. define " << count << "equips"; testEquip(outFile); }
/** * Initialise the data slot values */ void CLogClientOp::SetDataSlot1(TInt aValue) { iData().iDataSlot1 = aValue; }
// Just complete the observer on error TInt CLogClientOp::RunError(TInt aError) { iData().iOperationId = KLogNullOperationId; User::RequestComplete(iObserver, aError); return KErrNone; }
void ACapsConvertElement::iStream(const QbPacket &packet) { if (!packet.caps().isValid() || packet.caps().mimeType() != "audio/x-raw" || this->state() != ElementStatePlaying) return; // Input Format AVSampleFormat iSampleFormat = av_get_sample_fmt(packet.caps().property("format").toString().toStdString().c_str()); int iNChannels = packet.caps().property("channels").toInt(); int64_t iChannelLayout = av_get_channel_layout(packet.caps().property("layout").toString().toStdString().c_str()); int iNPlanes = av_sample_fmt_is_planar(iSampleFormat)? iNChannels: 1; int iSampleRate = packet.caps().property("rate").toInt(); int iNSamples = packet.caps().property("samples").toInt(); if (iNSamples < 1) iNSamples = 1024; bool sameMimeType = packet.caps().mimeType() == this->m_caps.mimeType(); // Output Format AVSampleFormat oSampleFormat = (sameMimeType && this->m_caps.dynamicPropertyNames().contains("format"))? av_get_sample_fmt(this->m_caps.property("format").toString().toStdString().c_str()): iSampleFormat; int oNChannels = (sameMimeType && this->m_caps.dynamicPropertyNames().contains("channels"))? this->m_caps.property("channels").toInt(): iNChannels; int64_t oChannelLayout = (sameMimeType && this->m_caps.dynamicPropertyNames().contains("layout"))? av_get_channel_layout(this->m_caps.property("layout").toString().toStdString().c_str()): iChannelLayout; int oSampleRate = (sameMimeType && this->m_caps.dynamicPropertyNames().contains("rate"))? this->m_caps.property("rate").toInt(): iSampleRate; QVector<uint8_t *> iData(iNPlanes); int iLineSize; if (av_samples_fill_arrays(&iData.data()[0], &iLineSize, (const uint8_t *) packet.buffer().data(), iNChannels, iNSamples, iSampleFormat, 1) < 0) return; QbCaps caps1(packet.caps()); QbCaps caps2(this->m_curInputCaps); caps1.setProperty("samples", QVariant()); caps2.setProperty("samples", QVariant()); if (caps1 != caps2) { // create resampler context this->m_resampleContext = SwrContextPtr(swr_alloc(), this->deleteSwrContext); if (!this->m_resampleContext) return; // set options av_opt_set_int(this->m_resampleContext.data(), "in_channel_layout", iChannelLayout, 0); av_opt_set_int(this->m_resampleContext.data(), "in_sample_rate", iSampleRate, 0); av_opt_set_sample_fmt(this->m_resampleContext.data(), "in_sample_fmt", iSampleFormat, 0); av_opt_set_int(this->m_resampleContext.data(), "out_channel_layout", oChannelLayout, 0); av_opt_set_int(this->m_resampleContext.data(), "out_sample_rate", oSampleRate, 0); av_opt_set_sample_fmt(this->m_resampleContext.data(), "out_sample_fmt", oSampleFormat, 0); // initialize the resampling context if (swr_init(this->m_resampleContext.data()) < 0) return; this->m_curInputCaps = packet.caps(); } // compute destination number of samples int oNSamples = av_rescale_rnd(swr_get_delay(this->m_resampleContext.data(), iSampleRate) + iNSamples, oSampleRate, iSampleRate, AV_ROUND_UP); // buffer is going to be directly written to a rawaudio file, no alignment int oNPlanes = av_sample_fmt_is_planar(oSampleFormat)? oNChannels: 1; QVector<uint8_t *> oData(oNPlanes); int oLineSize; int oBufferSize = av_samples_get_buffer_size(&oLineSize, oNChannels, oNSamples, oSampleFormat, 1); QSharedPointer<uchar> oBuffer(new uchar[oBufferSize]); if (!oBuffer) return; if (av_samples_fill_arrays(&oData.data()[0], &oLineSize, (const uint8_t *) oBuffer.data(), oNChannels, oNSamples, oSampleFormat, 1) < 0) return; // convert to destination format if (swr_convert(this->m_resampleContext.data(), oData.data(), oNSamples, (const uint8_t **) iData.data(), iNSamples) < 0) return; const char *format = av_get_sample_fmt_name(oSampleFormat); char layout[256]; av_get_channel_layout_string(layout, sizeof(layout), oNChannels, oChannelLayout); QString caps = QString("audio/x-raw," "format=%1," "channels=%2," "rate=%3," "layout=%4," "samples=%5").arg(format) .arg(oNChannels) .arg(oSampleRate) .arg(layout) .arg(oNSamples); QbPacket oPacket(caps, oBuffer, oBufferSize); oPacket.setPts(packet.pts()); oPacket.setDuration(packet.duration()); oPacket.setTimeBase(packet.timeBase()); oPacket.setIndex(packet.index()); emit this->oStream(oPacket); }