AudioAppComponent and TopLevelWindow

What is the difference of AudioAppComponent and TopLevelWindow?

Can I have an AudioAppComponent with a MenuBar using TopLevelWindow::setMenuBar()?


I'm starting a new audio app (as virtual instruments host). AudioAppComponent seems the way to go, but as it is derived from Component (and not as I thought first from JuceApplication), so how can I make use of the TopLevelWindow (especially setMenuBar (this); and setMacMainMenu (this); as in the example PluginHost and many more?

Multiple inheritance would give me redundant symbols from Component.

Thanks for clarification...

A TopLevelWindow is something like e.g. a DocumentWindow. It contains a content component, which could be something like an AudioAppComponent. If you look at any of our demos you'll see this kind of pattern in use.

Thanks for the hint. The name "AppComponent" confused me, but now I understand.

Now I'm wondering, what the functionality of AudioAppComponent is. At the moment I wonder how the streaming functionality in AudioAppComponent relates to a GUI-element, but I think I need to learn first, how multithreading in JUCE is done and especially what comes already in different threads. I reckon that AudioAppComponent has it's own thread apart from the GUI thread?

Thanks again for your response and for the good work.