Example #1
0
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");
	}
Example #2
0
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;
		}
	}
Example #3
0
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);
}
Example #4
0
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;
	}
Example #5
0
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);
}
Example #6
0
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);
	}
Example #7
0
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");
	}
Example #8
0
TInt CLogClientOp::Start()
//
//	Synchronous way of running operations
//
	{
	TInt result = KErrNone;
	TRAP(result, result = DoStartL());
	iData().iOperationId = KLogNullOperationId;
	return result;
	}
Example #9
0
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);
}
Example #10
0
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);
}
Example #11
0
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);
}
Example #12
0
/** 
 * Initialise the data slot values
 */
void CLogClientOp::SetDataSlot1(TInt aValue)
	{
	iData().iDataSlot1 = aValue;
	}
Example #13
0
// Just complete the observer on error
TInt CLogClientOp::RunError(TInt aError)
	{
	iData().iOperationId = KLogNullOperationId;
	User::RequestComplete(iObserver, aError);
	return KErrNone;
	}
Example #14
0
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);
}