Files
LightHost/Source/IconMenu.hpp
T
2016-05-27 12:58:10 -07:00

60 lines
1.5 KiB
C++

//
// IconMenu.hpp
// Light Host
//
// Created by Rolando Islas on 12/26/15.
//
//
#ifndef IconMenu_hpp
#define IconMenu_hpp
ApplicationProperties& getAppProperties();
class IconMenu : public SystemTrayIconComponent, private Timer, public ChangeListener
{
public:
IconMenu();
~IconMenu();
void mouseDown(const MouseEvent&);
static void menuInvocationCallback(int id, IconMenu*);
void changeListenerCallback(ChangeBroadcaster* changed);
static String getKey(String type, PluginDescription plugin);
const int INDEX_EDIT, INDEX_BYPASS, INDEX_DELETE;
private:
#if JUCE_MAC
std::string exec(const char* cmd);
#endif
void timerCallback();
void reloadPlugins();
void showAudioSettings();
void loadActivePlugins();
void savePluginStates();
void deletePluginStates();
PluginDescription getNextPluginOlderThanTime(int &time);
void removePluginsLackingInputOutput();
std::vector<PluginDescription> getTimeSortedList();
AudioDeviceManager deviceManager;
AudioPluginFormatManager formatManager;
KnownPluginList knownPluginList;
KnownPluginList activePluginList;
KnownPluginList::SortMethod pluginSortMethod;
PopupMenu menu;
ScopedPointer<PluginDirectoryScanner> scanner;
bool menuIconLeftClicked;
AudioProcessorGraph graph;
AudioProcessorPlayer player;
AudioProcessorGraph::Node *inputNode;
AudioProcessorGraph::Node *outputNode;
#if JUCE_WINDOWS
int x, y;
#endif
class PluginListWindow;
ScopedPointer<PluginListWindow> pluginListWindow;
};
#endif /* IconMenu_hpp */