コード例 #1
0
void FilterGraph::backToDefault()
{
    clear();
    update_chklist();
    
    InternalPluginFormat internalFormat;
    
    currentUid = "";
    currentName = "";
    
    addFilter (internalFormat.getDescriptionFor (InternalPluginFormat::audioInputFilter),  0.5f,  0.1f, 1);
    addFilter (internalFormat.getDescriptionFor (InternalPluginFormat::midiInputFilter),   0.25f, 0.1f, 3);
    addFilter (internalFormat.getDescriptionFor (InternalPluginFormat::audioOutputFilter), 0.5f,  0.9f, 2);
}
コード例 #2
0
ファイル: pMixAudioEngine.cpp プロジェクト: eriser/pMix2
PMixAudioEngine::PMixAudioEngine()
: doc(*this)
, faustDSPFormat(doc.getLibraryPath(), File(FAUST_DRAW_PATH))
{
  Logger::setCurrentLogger(&logger);
  
  LOG("pMix v 0.01");

  // initialise our settings file..
  
  PropertiesFile::Options options;
  options.applicationName     = "pMix";
  options.filenameSuffix      = "settings";
  options.osxLibrarySubFolder = "Application Support";
#ifdef JUCE_MAC
  options.folderName = "pMix2";
#endif
  appProperties = new ApplicationProperties();
  appProperties->setStorageParameters (options);
  
  formatManager.addDefaultFormats();
  formatManager.addFormat (new InternalPluginFormat());
  InternalPluginFormat internalFormat;
  internalFormat.getAllTypes (internalTypes);
  
  ScopedPointer<XmlElement> savedPluginList (getAppProperties().getUserSettings()->getXmlValue ("pluginList"));
  
  if (savedPluginList != nullptr)
    knownPluginList.recreateFromXml (*savedPluginList);
    
  ScopedPointer<PluginDirectoryScanner> scanner = new PluginDirectoryScanner(knownFaustDSPList, faustDSPFormat, faustDSPFormat.getDefaultLocationsToSearch(), true, File::nonexistent);
  
  LOG("Scanning Faust .dsp files...");

  String pluginBeingScanned;

  while (scanner->scanNextFile(true, pluginBeingScanned)) {
  }
  
  String str(knownFaustDSPList.getNumTypes());
  //LOG("found " + str + " faust .dsp files");
  
  pluginSortMethod = (KnownPluginList::SortMethod) getAppProperties().getUserSettings()->getIntValue ("pluginSortMethod", KnownPluginList::sortByFileSystemLocation);
  setPluginSortMethod(pluginSortMethod);

#if JUCE_MAC
  knownPluginList.addToBlacklist("/Library/Audio/Plug-Ins/VST/pMixPlugin.vst");
#endif
  knownPluginList.addChangeListener (this);
}
コード例 #3
0
//==============================================================================
MainHostWindow::MainHostWindow()
    : DocumentWindow (JUCEApplication::getInstance()->getApplicationName(), Colours::lightgrey,
                      DocumentWindow::allButtons)
{
    XmlElement* const savedAudioState = ApplicationProperties::getInstance()->getUserSettings()
                                            ->getXmlValue (T("audioDeviceState"));

    deviceManager.initialise (256, 256, savedAudioState, true);

    delete savedAudioState;

    setResizable (true, false);
    setResizeLimits (500, 400, 10000, 10000);
    centreWithSize (800, 600);

    setContentComponent (new GraphDocumentComponent (&deviceManager));

    restoreWindowStateFromString (ApplicationProperties::getInstance()->getUserSettings()->getValue ("mainWindowPos"));

    setVisible (true);

    InternalPluginFormat internalFormat;
    internalFormat.getAllTypes (internalTypes);

    XmlElement* const savedPluginList = ApplicationProperties::getInstance()
                                          ->getUserSettings()
                                          ->getXmlValue (T("pluginList"));

    if (savedPluginList != 0)
    {
        knownPluginList.recreateFromXml (*savedPluginList);
        delete savedPluginList;
    }

    pluginSortMethod = (KnownPluginList::SortMethod) ApplicationProperties::getInstance()->getUserSettings()
                            ->getIntValue (T("pluginSortMethod"), KnownPluginList::sortByManufacturer);

    knownPluginList.addChangeListener (this);

    addKeyListener (commandManager->getKeyMappings());

    Process::setPriority (Process::HighPriority);

#if JUCE_MAC
    setMacMainMenu (this);
#else
    setMenuBar (this);
#endif
}
コード例 #4
0
ファイル: FilterGraph.cpp プロジェクト: Krewn/LIOS
FilterGraph::FilterGraph (AudioPluginFormatManager& formatManager_)
    : FileBasedDocument (filenameSuffix,
                         filenameWildcard,
                         "Load a filter graph",
                         "Save a filter graph"),
      formatManager (formatManager_), lastUID (0)
{
    InternalPluginFormat internalFormat;

    addFilter (internalFormat.getDescriptionFor (InternalPluginFormat::audioInputFilter),  0.5f,  0.1f);
    addFilter (internalFormat.getDescriptionFor (InternalPluginFormat::midiInputFilter),   0.25f, 0.1f);
    addFilter (internalFormat.getDescriptionFor (InternalPluginFormat::audioOutputFilter), 0.5f,  0.9f);

    setChangedFlag (false);
}
コード例 #5
0
//==============================================================================
MainHostWindow::MainHostWindow()
    : DocumentWindow (JUCEApplication::getInstance()->getApplicationName(), Colours::lightgrey,
                      DocumentWindow::allButtons)
{
    formatManager.addDefaultFormats();
    formatManager.addFormat (new InternalPluginFormat());

    ScopedPointer<XmlElement> savedAudioState (appProperties->getUserSettings()
                                                   ->getXmlValue ("audioDeviceState"));

    deviceManager.initialise (256, 256, savedAudioState, true);

    setResizable (true, false);
    setResizeLimits (500, 400, 10000, 10000);
    centreWithSize (800, 600);

    setContentOwned (new GraphDocumentComponent (formatManager, &deviceManager), false);

    restoreWindowStateFromString (appProperties->getUserSettings()->getValue ("mainWindowPos"));

    setVisible (true);

    InternalPluginFormat internalFormat;
    internalFormat.getAllTypes (internalTypes);

    ScopedPointer<XmlElement> savedPluginList (appProperties->getUserSettings()->getXmlValue ("pluginList"));

    if (savedPluginList != nullptr)
        knownPluginList.recreateFromXml (*savedPluginList);

    pluginSortMethod = (KnownPluginList::SortMethod) appProperties->getUserSettings()
                            ->getIntValue ("pluginSortMethod", KnownPluginList::sortByManufacturer);

    knownPluginList.addChangeListener (this);

    addKeyListener (commandManager->getKeyMappings());

    Process::setPriority (Process::HighPriority);

   #if JUCE_MAC
    setMacMainMenu (this);
   #else
    setMenuBar (this);
   #endif

    commandManager->setFirstCommandTarget (this);
}
コード例 #6
0
//------------------------------------------------------------------------------
void PluginField::enableAudioInput(bool val)
{
	int i;

	audioInputEnabled = val;

	if(!val)
	{
		//Delete the filter(s) in the signal path.
		for(i=(signalPath->getNumFilters()-1);i>=0;--i)
		{
			if(signalPath->getNode(i)->getProcessor()->getName() == "Audio Input")
				deleteFilter(signalPath->getNode(i));
		}

		//Delete the associated "Audio Input" PluginComponent(s).
		for(i=(getNumChildComponents()-1);i>=0;--i)
		{
			PluginComponent *comp = dynamic_cast<PluginComponent *>(getChildComponent(i));

			if(comp)
			{
				if(comp->getNode()->getProcessor()->getName() == "Audio Input")
					delete removeChildComponent(i);
			}
		}
	}
	else
	{
		InternalPluginFormat internalFormat;

		//Add the filter to the signal path.
		signalPath->addFilter(internalFormat.getDescriptionFor(InternalPluginFormat::audioInputFilter),
				              10.0f, 10.0f);

		//Add the associated PluginComponent.
		addFilter(signalPath->getNumFilters()-1);
	}
}
コード例 #7
0
//------------------------------------------------------------------------------
void PluginField::enableMidiInput(bool val)
{
	int i;
	AudioProcessorGraph::Node *tempNode = 0;
	multimap<uint32, Mapping *>::iterator it;

	midiInputEnabled = val;

	if(!val)
	{
		//Delete mappings.
		for(it=mappings.begin();it!=mappings.end();)
		{
			MidiMapping *midiMapping = dynamic_cast<MidiMapping *>(it->second);

			if(midiMapping)
			{
				delete it->second;
				mappings.erase(it++);
			}
			else
				++it;
		}

		//Midi Input filter.
		{
			//Delete filter.
			for(i=(signalPath->getNumFilters()-1);i>=0;--i)
			{
				if(signalPath->getNode(i)->getProcessor()->getName() == "Midi Input")
				{
					tempNode = signalPath->getNode(i);
					deleteFilter(tempNode);
				}
			}

			//Delete PluginComponent.
			for(i=(getNumChildComponents()-1);i>=0;--i)
			{
				PluginComponent *comp = dynamic_cast<PluginComponent *>(getChildComponent(i));

				if(comp)
				{
					if(comp->getNode() == tempNode)
						delete removeChildComponent(i);
				}
			}
		}
		//Midi Interceptor filter.
		{
			//Delete filter.
			for(i=(signalPath->getNumFilters()-1);i>=0;--i)
			{
				if(signalPath->getNode(i)->getProcessor()->getName() == "Midi Interceptor")
					deleteFilter(signalPath->getNode(i));
			}
		}
	}
	else
	{
		InternalPluginFormat internalFormat;

		//Add the filter to the signal path.
		signalPath->addFilter(internalFormat.getDescriptionFor(InternalPluginFormat::midiInputFilter),
				              10.0f, 120.0f);

		//Add the associated PluginComponent.
		addFilter(signalPath->getNumFilters()-1);

		//Add the Midi Interceptor too.
		{
			MidiInterceptor p;
			PluginDescription desc;

			p.fillInPluginDescription(desc);

			signalPath->addFilter(&desc, 100, 100);

			//And connect it up to the midi input.
			{
				uint32 midiInput = 0;
				uint32 midiInterceptor = 0;

				for(i=0;i<signalPath->getNumFilters();++i)
				{
					if(signalPath->getNode(i)->getProcessor()->getName() == "Midi Input")
						midiInput = signalPath->getNode(i)->nodeId;
					else if(signalPath->getNode(i)->getProcessor()->getName() == "Midi Interceptor")
					{
						midiInterceptor = signalPath->getNode(i)->nodeId;
						dynamic_cast<MidiInterceptor *>(signalPath->getNode(i)->getProcessor())->setManager(&midiManager);
					}
				}
				signalPath->addConnection(midiInput,
										  AudioProcessorGraph::midiChannelIndex,
										  midiInterceptor,
										  AudioProcessorGraph::midiChannelIndex);
			}
		}
	}
}