Example #1
0
void
Upload::generatePayload(std::ostream& out)
{
    generateTextField(out, "screenname", mUserName);
    generateTextField(out, "password", mPassword);
    
    generateTextField(out, "agent", "ContextFree");
    
    generateTextField(out, "title", mTitle);
    generateFileField(out, "cfdgfile", mText, mTextLen, mFileName);
    generateFileField(out, "imagefile", mImage, mImageLen, "image.png");
    generateTextField(out, "compression", compressionName(mCompression));
    generateTextField(out, "cc_js_result_uri", mccLicenseURI);
    generateTextField(out, "cc_js_result_name", mccLicenseName);
    generateTextField(out, "cc_js_result_img", mccLicenseImage);
    if (mccLicenseURI.length())
        generateTextField(out, "cc_js_want_cc_license", "sure");
    if (mTiled)
        generateTextField(out, "tiled", "on");
    generateTextField(out, "tiledtype", (char)(mTiled + '0'));
    generateTextField(out, "variation", variationName(mVariation));
    generateTextField(out, "notes", mNotes);
    
    // generateTextField(out, "submit", "Upload!");
    
    generateMimeFooter(out);
}
bool CommunicationVoiceLibrary::GetVoice(VoiceLibraryID libraryID, const char* name, const char*& libraryPath,
																					 const char*& voiceName)
{
	stack_string variationName(name);
	variationName.MakeLower();
	VoiceLibraries::iterator it = m_libraries.find(libraryID);
	if (it == m_libraries.end())
		return false;

	VoiceLibrary& library = it->second;
	
	VoiceGroups::iterator git = library.voiceGroups.find(variationName.c_str());
	if (git == library.voiceGroups.end())
		return false;

	VoiceGroup& voiceGroup = git->second;
	
	uint32 variationCount = voiceGroup.variations.size();
	if (!variationCount)
		return false;

	uint32 variation = 0;

	if (variationCount > 1)
	{
		m_randomPool.clear();

		for (uint32 i = 0; i < variationCount; ++i)
		{
			if ((voiceGroup.history.played & (1 << i)) == 0)
				m_randomPool.push_back(i);
		}

		uint32 size = m_randomPool.size();
		assert(!m_randomPool.empty());
		variation = m_randomPool[Random(size)];
		assert(variation < voiceGroup.variations.size());

		voiceGroup.history.played |= 1 << variation;

		if ((voiceGroup.history.played & ((1 << variationCount) - 1)) == voiceGroup.history.played)
			voiceGroup.history.played = 1 << variation;
	}

	if (!library.base.empty())
		libraryPath = library.base.c_str();
	
	const string& variationVoiceName = voiceGroup.variations[variation];
	
	if (!variationVoiceName.empty())
		voiceName = variationVoiceName.c_str();

	return true;
}