void AutoRiff::generate(){
	clearComponents();

	// fill the length of the riff
	double curLengthInBeats = 0;
	while(curLengthInBeats < lengthInBeats){

		float genLengthInBeats = 0;
		switch(sweet::NumberUtils::randomInt(0, 3)){
			case 0: genLengthInBeats = 1; break;
			case 1: genLengthInBeats = 0.5; break;
			case 2: genLengthInBeats = 0.25; break;
			case 3: genLengthInBeats = 0.125; break;
		}
		// generate a random number on the scale (will be used as an array accessor for AutoRiff::scales
		int genPitch = sweet::NumberUtils::randomInt(generationMin, generationMax);
		// make some notes rests instead of actual notes
		float genVolume = (float)sweet::NumberUtils::randomInt(0, 1);

		components.push_back(new Note(genLengthInBeats, genPitch, genVolume));
		curLengthInBeats += components.back()->lengthInBeats;
	}
	if(curLengthInBeats > lengthInBeats){
		components.back()->lengthInBeats -= curLengthInBeats - lengthInBeats;
	}

	AutoTrack::generate();
}
//----[  destroy  ]------------------------------------------------------------
void EvidyonGUIModule_TradeDialog::destroy() {
  hide();
  quantity_prompt_.destroy();
  clearComponents();
  button_font_ = NULL;
  trade_accepted_ = false;
}
void AutoRide::generate(){
	clearComponents();

	// generate ride hits
	float beatUnit = 1.f/timeSignatureBottom;
	unsigned long int numRide = 0;
	switch(sweet::NumberUtils::randomInt(0,2)){
		case 0:	numRide = 1; break; // one primary per beat
		case 1:	numRide = 2; break; // two primary per beat
		case 2:	numRide = 4; break; // four primary per beat
	}
	for(unsigned long int i = 0; i < timeSignatureTop; ++i){
		for(unsigned long int j = 0; j < numRide; ++j){
			bool addSecondary = !sweet::NumberUtils::randomInt(0, 2);
			if(addSecondary){
				components.push_back(new Note(beatUnit/numRide*0.5f, 0, 0.5)); // primary hit
				components.push_back(new Note(beatUnit/numRide*0.5f, 0, 0.25)); // secondary hit
			}else{
				components.push_back(new Note(beatUnit/numRide, 0, 0.5)); // primary hit
			}
		}
	}

	AutoTrack::generate();
}
//----[  destroy  ]------------------------------------------------------------
void EvidyonGUIModule_Bazaar::destroy() {
  hide();
  inventory_.destroy();
  items_in_category_.destroy();
  create_listing_prompt_.destroy();
  clearComponents();
}
void RemoveTrackModal::createTogglesFromExistingTracks(){
    auto existingTracks = _timelineViewPtr->getExistingTracksRef();
    clearComponents();
    _tracksToggles.clear();
    for (auto t : existingTracks){
        auto label = t.name;
        ofxDatGuiToggle* toggle = GuiFactory::createToggle(label, false, this, &RemoveTrackModal::onToggleEvent);
        _tracksToggles.push_back(toggle);
        addComponent(toggle);
    }
}
//==============================================================================
void HostFilterComponent::changeListenerCallback (void* source)
{
    if (source == this)
    {
        closePluginEditorWindows ();
    }
    else if (source == getFilter())
    {
        clearComponents ();
        rebuildComponents ();

        // reopen windows saved with session
        Host* host = getFilter()->host;
        for (int j = 0; j < host->getPluginsCount(); j++)
        {
            BasePlugin* plugin = host->getPluginByIndex (j);
            if (plugin && plugin->getIntValue (PROP_WINDOWOPEN, 0))
                openPluginEditorWindow (plugin);
        }

        resized ();
    }
    else if (source == getFilter()->getTransport())
    {
        // update transport !
        CommandManager::getInstance()->commandStatusChanged ();
    }
    else if (source == &knownPluginList)
    {
       // save the plugin list every time it gets changed, so that if we're scanning
       // and it crashes, we've still saved the previous ones
       XmlElement* const savedPluginList = knownPluginList.createXml();

       if (savedPluginList != 0)
       {
           ApplicationProperties::getInstance()->getUserSettings()
                 ->setValue (T("pluginList"), savedPluginList);

           delete savedPluginList;

           ApplicationProperties::getInstance()->saveIfNeeded();
       }    
    }
    else
    {
        for (int i = pluginWindows.size(); --i >= 0;)
        {
            VstPluginWindow* window = pluginWindows.getUnchecked (i);
            if (window)
                window->updateParameters ();
        }
    }
}
void AutoSnare::generate(){
	clearComponents();

	// generate snare hits
	float beatUnit = 1.f/timeSignatureBottom;
	for(unsigned long int i = 0; i < timeSignatureTop; ++i){
		
		int numSnare = 0;
		switch(sweet::NumberUtils::randomInt(0,2)){
			case 0:	numSnare = 1; break;
			case 1:	numSnare = 2; break;
			case 2:	numSnare = 4; break;
		}
		float l = beatUnit/numSnare;
		if(l < beatUnit && sweet::NumberUtils::randomBool()){
			l = beatUnit-l;
		}

		bool addSecondary = sweet::NumberUtils::randomBool();
		

		if(i % 2 == 1){
			if(addSecondary){
				components.push_back(new Note(l, 0, 1)); // primary hit
				if(l < beatUnit){
					components.push_back(new Note(beatUnit-l, 0, 0.5)); // secondary hit
				}
			}else{
				components.push_back(new Note(beatUnit, 0, 1)); // primary hit for full beat
			}
		}else{
			if(addSecondary){
				components.push_back(new Note(beatUnit, 0, 0.5)); // secondary hit for full beat
			}else{
				 // full rest
				if(components.size() > 0){
					components.back()->lengthInBeats += beatUnit;
				}else{
					components.push_back(new Note(beatUnit, 0, 0));
				}
			}
		}
	}

	AutoTrack::generate();
}
//----[  sync  ]---------------------------------------------------------------
void EvidyonGUIModuleActiveQuestDisplay::sync(const ActiveQuestData quest_data[3]) {
  GUILayer* layer = hide();
  clearComponents();
  addComponent(&panel_);
  for (int i = 0; i < 3; ++i) {
    bool active = !quest_data[i].name.empty();
    quests_active_[i] = active;
    if (active) {
      addComponent(&quest_buttons_[i]);
      quest_buttons_[i].enable();
      quest_names_[i] = quest_data[i].name;
      quest_expiration_times_[i] = quest_data[i].expiration_time;
      quest_indices_[i] = quest_data[i].quest_index;
    }
  }
  show(layer);
}
void AutoDrums::generate(){
	clearComponents();

	unsigned long int numBeats = 1;

	for(unsigned long int i = 0; i < numBeats; ++i){
		AutoBeat * b = new AutoBeat(snare, kick, ride);
		b->bpm = bpm;
		b->timeSignatureTop = timeSignatureTop;
		b->timeSignatureBottom = timeSignatureBottom;

		std::cout << "Beat: " << bpm << "bpm, " << timeSignatureTop << "/" << timeSignatureBottom << std::endl;

		b->generate();
		components.push_back(b);
	}

	AutoTrack::generate();

	lengthInBeats *= numBeats;
	lengthInSeconds *= numBeats;
}
void AutoKick::generate(){
	clearComponents();

	// generate kick hits
	float beatUnit = 1.f/timeSignatureBottom;
	//kick->notes.push_back(Note(0.25, 0, 1)); // first primary hit always on 1
	for(unsigned long int i = 0; i < timeSignatureTop; ++i){
		int numKick;
		switch(sweet::NumberUtils::randomInt(0,2)){
			case 0:	numKick = 1; break;
			case 1:	numKick = 2; break;
			case 2:	numKick = 4; break;
		}
		float l = beatUnit/numKick;
		components.push_back(new Note(l, 0, 0.5));
		if(l < beatUnit){
			components.push_back(new Note(beatUnit-l, 0, 1));
		}
	}

	AutoTrack::generate();
}
//----------------------------------------------------------------------------//
RenderedString::~RenderedString()
{
    clearComponents();
}
AutoTrack::~AutoTrack(){
	clearComponents();
}
MainTabbedComponent::~MainTabbedComponent ()
{
    DBG ("MainTabbedComponent::~MainTabbedComponent");

    clearComponents ();
}
Exemple #14
0
Entity::~Entity()
{
	clearComponents();
	delete components;
}
//----[  destroy  ]------------------------------------------------------------
void EvidyonGUIModuleActiveQuestDisplay::destroy() {
  hide();
  clearComponents();
}
ComponentContainer::~ComponentContainer()
{
	clearComponents();
}
void EvidyonGUIModule_InventoryList::destroy() {
  clearComponents();
  button_font_ = NULL;
  hide();
}
bool HostFilterComponent::perform (const InvocationInfo& info)
{
    Config* config = Config::getInstance();

    GraphComponent* graph = main->getGraph ();
    Transport* transport = getFilter()->getTransport();

    switch (info.commandID)
    {
    //----------------------------------------------------------------------------------------------
    case CommandIDs::pluginOpen:
        {
            graph->loadAndAppendPlugin ();
            break;
        }
    case CommandIDs::pluginClose:
        {
            graph->closeSelectedPlugins ();
            break;
        }
    case CommandIDs::pluginClear:
        {
            graph->closeAllPlugins ();
            break;
        }
    case CommandIDs::showPluginListEditor:
        {
           if (PluginListWindow::currentPluginListWindow == 0)
               PluginListWindow::currentPluginListWindow = new PluginListWindow (knownPluginList);

           PluginListWindow::currentPluginListWindow->toFront (true);
            
            break;
        }

    //----------------------------------------------------------------------------------------------
#ifndef JOST_VST_PLUGIN
    case CommandIDs::audioOptions:
        {
            StandaloneFilterWindow* window = findParentComponentOfClass ((StandaloneFilterWindow*) 0);
            if (window)
                window->showAudioSettingsDialog ();

            break;
        }
#endif

    case CommandIDs::audioPlay:
        {
            transport->play ();
            break;
        }
    case CommandIDs::audioPlayPause:
        {
            transport->togglePlay ();
            break;
        }
    case CommandIDs::audioStop:
        {
            transport->stop ();
            break;
        }
    case CommandIDs::audioRecord:
        {
            transport->record ();
            break;
        }
    case CommandIDs::audioRewind:
        {
            transport->rewind ();
            break;
        }
    case CommandIDs::audioLoop:
        {
            transport->setLooping (! transport->isLooping());
            break;
        }

    //----------------------------------------------------------------------------------------------
    case CommandIDs::sessionNew:
        {
           bool retValue = 
               AlertWindow::showYesNoCancelBox (AlertWindow::WarningIcon,
                                             T("Unsaved Changes"),
                                             T("Are you sure you want to close the current session? You may lose any unsaved changes."));
            if (retValue)
            {
               closePluginEditorWindows ();
               getFilter()->getHost ()->closeAllPlugins (true);

               clearComponents ();
               Config::getInstance()->lastSessionFile = File::nonexistent;
               rebuildComponents ();
            }
            break;
        }
    
    case CommandIDs::sessionLoad:
        {
            FileChooser myChooser (T("Load a session file..."),
                                    Config::getInstance ()->lastSessionDirectory,
                                    JOST_SESSION_WILDCARD, JOST_USE_NATIVE_FILE_CHOOSER);

            if (myChooser.browseForFileToOpen())
            {
              bool retValue = 
               AlertWindow::showYesNoCancelBox (AlertWindow::WarningIcon,
                                             T("Unsaved Changes"),
                                             T("Are you sure you want to close the current session? You may lose any unsaved changes."));
               if (retValue)
               {

                MemoryBlock fileData;
                File fileToLoad = myChooser.getResult();

                if (fileToLoad.existsAsFile()
                    && fileToLoad.loadFileAsData (fileData))
                {
                    getFilter ()->setStateInformation (fileData.getData (), fileData.getSize());

                    Config::getInstance()->addRecentSession (fileToLoad);
                    Config::getInstance()->lastSessionFile = fileToLoad;
                }
               }
            }
            break;
        }
    case CommandIDs::sessionSave:
        {
            handleSaveCommand();
            break;
        }
    case CommandIDs::sessionSaveNoPrompt:
        {
            handleSaveCommand(true);
            break;
        }

    case CommandIDs::audioStemsStartStop:
        {
            getHost()->toggleStemRendering();
            break;
        }
    case CommandIDs::audioStemsSetup:
        {
            FileChooser myChooser (T("Save Rendered Stem Files To..."),
                                    Config::getInstance ()->lastStemsDirectory);
            if (myChooser.browseForDirectory ())
            {
                Config::getInstance ()->lastStemsDirectory = myChooser.getResult();
            }
            break; 
        }

    //----------------------------------------------------------------------------------------------
    case CommandIDs::appToolbar:
        {
            toolbar->showCustomisationDialog (*factory,
                                              Toolbar::allCustomisationOptionsEnabled);
                                              // (Toolbar::allowIconsOnlyChoice | Toolbar::showResetToDefaultsButton));
            break;
        }
    case CommandIDs::appBrowser:
        {
            setBrowserVisible (! config->showBrowser, config->browserLeft);
            break;
        }
    case CommandIDs::appFullScreen:
        {
            DocumentWindow* window = findParentComponentOfClass <DocumentWindow> ();
            if (window) {
                window->setFullScreen (! window->isFullScreen ());
                window->setMenuBar (window->isFullScreen () ? 0 : this);
            }
            break;
        }
    case CommandIDs::appExit:
        {
            deleteAndZero(PluginListWindow::currentPluginListWindow);
            JUCEApplication::getInstance()->systemRequestedQuit();
            break;
        }
    case CommandIDs::appAbout:
        {
//            Image* splashImage = ImageCache::getFromMemory (Resource::jost_about,
//                                                            Resource::jost_about_size);
         // todo: move appResourcesFolder() to somewhere everyone can use it
#if JUCE_MAC
			File appResourcesFolder(File::getSpecialLocation(File::currentApplicationFile).getChildFile("./Contents/Resources"));
#else
			File appResourcesFolder(File::getSpecialLocation(File::currentApplicationFile).getParentDirectory());
#endif
			File splashImageFile(appResourcesFolder.getChildFile("JiveAbout.png"));
            Image* splashImage = ImageFileFormat::loadFrom(splashImageFile);
            SplashScreen* splash = new SplashScreen();
            splash->show (T(JucePlugin_Name), splashImage, 3500, false);
            break;
        }

    //----------------------------------------------------------------------------------------------
    default:
        return false;
    }

    return true;
}