コード例 #1
0
void VstPluginWindow::savePreset ()
{
    File lastPresetDirectory = File (plugin->getValue (PROP_PLUGPRESETDIR, String::empty));
    if (! lastPresetDirectory.exists())
        lastPresetDirectory = Config::getInstance ()->lastPresetDirectory;

    FileChooser myChooser (T("Save a preset file..."),
                           lastPresetDirectory,
                           JOST_PRESET_WILDCARD, JOST_USE_NATIVE_FILE_CHOOSER);

    if (myChooser.browseForFileToSave (true))
    {
        File fileToSave = myChooser.getResult().withFileExtension (JOST_PRESET_EXTENSION);

        XmlElement xml (JOST_PRESET_PRESETTAG);
        plugin->savePresetToXml (&xml);

        if (fileToSave.replaceWithText (xml.createDocument (String::empty)))
        {
            Config::getInstance()->addRecentPreset (fileToSave);

            plugin->setValue (PROP_PLUGPRESETDIR, fileToSave.getParentDirectory().getFullPathName());
        }
    }
}
コード例 #2
0
ファイル: Smugmug.cpp プロジェクト: onegrasshopper/komododrop
XmlElement* SmugMug::smugMugRequest(const String& method, const StringPairArray& params_, bool upload)
{
	StringPairArray params(params_);
	params.set(("method"), method);
	params.set(("APIKey"), APIKEY);

	startTimer(LOGOUT_TIMER);

	if (sessionId.isNotEmpty())
		params.set(("SessionID"), sessionId);

	URL url(upload ? UPLOAD_URL : BASE_URL);

	StringArray keys = params.getAllKeys();
	StringArray vals = params.getAllValues();

	for (int i = 0; i < keys.size(); i++)
		url = url.withParameter(keys[i], vals[i]);

	XmlElement* x = url.readEntireXmlStream(upload);
#ifdef JUCE_DEBUG
	Logger::outputDebugString(url.toString(true));
	if (x)
		Logger::outputDebugString(x->createDocument(String::empty, true));
#endif
	if (x && x->getStringAttribute(("stat")) == ("fail"))
	{
		XmlElement* err = x->getChildByName(("err"));
		if (err)
		{
			addLogEntry(("Error: ") + err->getStringAttribute(("msg")));
		}
	}
	return x;
}
コード例 #3
0
void Plugin::saveCurrentProgramXml(File* file)
{
    //save current settings
    program_bank->saveProgramState(current_program);
    saveProgramTo(current_program);

    //output program to file
    XmlElement* program = program_bank->createProgramXml(current_program);
    file->replaceWithText(program->createDocument(String::empty));
    delete program;
}
コード例 #4
0
void Plugin::saveBankXml(File* file)
{
    // save current program
    program_bank->saveProgramState(current_program);

    // output bank to file
    XmlElement* bankXml = program_bank->createBankXml();
    file->replaceWithText(bankXml->createDocument(String::empty));
    delete bankXml;
    editor_program_update_pending = true;
    setSavedState(true);
}
コード例 #5
0
    //==============================================================================
    static String encryptXML (const XmlElement& xml, RSAKey privateKey)
    {
        MemoryOutputStream text;
        text << xml.createDocument (StringRef(), true);

        BigInteger val;
        val.loadFromMemoryBlock (text.getMemoryBlock());

        privateKey.applyToValue (val);

        return val.toString (16);
    }
コード例 #6
0
void AudioProcessor::copyXmlToBinary (const XmlElement& xml, juce::MemoryBlock& destData)
{
    const String xmlString (xml.createDocument (String::empty, true, false));
    const int stringLength = xmlString.getNumBytesAsUTF8();

    destData.setSize ((size_t) stringLength + 10);

    char* const d = static_cast<char*> (destData.getData());
    *(uint32*) d = ByteOrder::swapIfBigEndian ((const uint32) magicXmlNumber);
    *(uint32*) (d + 4) = ByteOrder::swapIfBigEndian ((const uint32) stringLength);

    xmlString.copyToUTF8 (d + 8, stringLength + 1);
}
コード例 #7
0
ファイル: juce_AudioProcessor.cpp プロジェクト: eriser/rejuce
void AudioProcessor::copyXmlToBinary (const XmlElement& xml, juce::MemoryBlock& destData)
{
    const String xmlString (xml.createDocument (String::empty, true, false));
    const size_t stringLength = xmlString.getNumBytesAsUTF8();

    destData.setSize (stringLength + 9);

    uint32* const d = static_cast<uint32*> (destData.getData());
    d[0] = ByteOrder::swapIfBigEndian ((const uint32) magicXmlNumber);
    d[1] = ByteOrder::swapIfBigEndian ((const uint32) stringLength);

    xmlString.copyToUTF8 ((CharPointer_UTF8::CharType*) (d + 2), stringLength + 1);
}
コード例 #8
0
void AudioProcessor::copyXmlToBinary (const XmlElement& xml,
                                      JUCE_NAMESPACE::MemoryBlock& destData)
{
    const String xmlString (xml.createDocument (String::empty, true, false));
    const int stringLength = xmlString.length();

    destData.setSize (stringLength + 10);

    char* const d = (char*) destData.getData();
    *(uint32*) d = ByteOrder::swapIfBigEndian ((const uint32) magicXmlNumber);
    *(uint32*) (d + 4) = ByteOrder::swapIfBigEndian ((const uint32) stringLength);

    xmlString.copyToBuffer (d + 8, stringLength);
}
コード例 #9
0
void DemoJuceFilter::getStateInformation (MemoryBlock& destData)
{
    XmlElement xmlState (T("BITMUNGLER"));
    xmlState.setAttribute (T("pluginVersion"), 1);

	xmlState.setAttribute (T("xorBits"), serializeArray (xorBits));
	xmlState.setAttribute (T("xorWith"), xorWith);
	xmlState.setAttribute (T("xorProcessing"), xorProcessing);

	xmlState.setAttribute (T("andBits"), serializeArray (andBits));
	xmlState.setAttribute (T("andWith"), andWith);
	xmlState.setAttribute (T("andProcessing"), andProcessing);

	xmlState.setAttribute (T("clearBits"), serializeArray (clearBits));
	xmlState.setAttribute (T("clearProcessing"), clearProcessing);

	xmlState.setAttribute (T("setBits"), serializeArray (setBits));
	xmlState.setAttribute (T("setProcessing"), setProcessing);

	Logger::writeToLog (xmlState.createDocument (String::empty));

    copyXmlToBinary (xmlState, destData);
}
コード例 #10
0
void ComponentLayout::copySelectedToClipboard()
{
    if (selected.getNumSelected() == 0)
        return;

    XmlElement clip (clipboardXmlTag);

    for (int i = 0; i < components.size(); ++i)
    {
        Component* const c = components.getUnchecked(i);

        if (selected.isSelected (c))
        {
            if (ComponentTypeHandler* const type = ComponentTypeHandler::getHandlerFor (*c))
            {
                XmlElement* const e = type->createXmlFor (c, this);
                clip.addChildElement (e);
            }
        }
    }

    SystemClipboard::copyTextToClipboard (clip.createDocument (String::empty, false, false));
}