| @@ -250,6 +250,18 @@ | |||||
| */ | */ | ||||
| #define JucePlugin_CFBundleIdentifier "com.rawmaterialsoftware.JuceDemo" | #define JucePlugin_CFBundleIdentifier "com.rawmaterialsoftware.JuceDemo" | ||||
| /** In an AU, some hosts take the name of Cocoa class that creates the UI and | |||||
| actually show it to the user in a list (why??)... Anyway, this macro lets you | |||||
| provide a sensible name for that class to make it clear what plugin it refers to. | |||||
| Obviously this has to be a valid obj-C class name. | |||||
| Just to make things a little more complicated, this name must also be unique to this | |||||
| precise version of your software. Otherwise, if the host loads two plugins that use the | |||||
| same class name, the obj-C linker will almost certainly connect the wrong modules together | |||||
| and cause total meltdown. | |||||
| */ | |||||
| #define JucePlugin_AUCocoaViewClassName JuceDemoAU_V1 | |||||
| //============================================================================== | //============================================================================== | ||||
| /* RTAS settings */ | /* RTAS settings */ | ||||
| @@ -71,8 +71,8 @@ extern AudioProcessor* JUCE_CALLTYPE createPluginFilter(); | |||||
| #define appendMacro2(a, b, c, d) appendMacro1(a, b, c, d) | #define appendMacro2(a, b, c, d) appendMacro1(a, b, c, d) | ||||
| #define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, JucePlugin_AUExportPrefix) | #define MakeObjCClassName(rootName) appendMacro2 (rootName, JUCE_MAJOR_VERSION, JUCE_MINOR_VERSION, JucePlugin_AUExportPrefix) | ||||
| #define JuceUICreationClass MakeObjCClassName(JuceUICreationClass) | |||||
| #define JuceUIViewClass MakeObjCClassName(JuceUIViewClass) | |||||
| #define JuceUICreationClass JucePlugin_AUCocoaViewClassName | |||||
| #define JuceUIViewClass MakeObjCClassName(JuceUIViewClass) | |||||
| class JuceAU; | class JuceAU; | ||||
| class EditorCompHolder; | class EditorCompHolder; | ||||
| @@ -102,4 +102,9 @@ | |||||
| #error "You need to define the JucePlugin_WinBag_path value in your JucePluginCharacteristics.h file!" | #error "You need to define the JucePlugin_WinBag_path value in your JucePluginCharacteristics.h file!" | ||||
| #endif | #endif | ||||
| #if JucePlugin_Build_AU && ! defined (JucePlugin_AUCocoaViewClassName) | |||||
| #error "You need to define the JucePlugin_AUCocoaViewClassName value in your JucePluginCharacteristics.h file!" | |||||
| #endif | |||||
| #endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__ | #endif // __JUCE_INCLUDECHARACTERISTICS_JUCEHEADER__ | ||||
| @@ -102,7 +102,7 @@ public: | |||||
| bool moreThanOneInstanceAllowed() | bool moreThanOneInstanceAllowed() | ||||
| { | { | ||||
| return false; | |||||
| return true; | |||||
| } | } | ||||
| void anotherInstanceStarted (const String& commandLine) | void anotherInstanceStarted (const String& commandLine) | ||||
| @@ -272,5 +272,15 @@ | |||||
| #endif | #endif | ||||
| //============================================================================= | //============================================================================= | ||||
| // If only building the core classes, we can explicitly turn off some features to avoid including them: | |||||
| #if JUCE_ONLY_BUILD_CORE_LIBRARY | |||||
| #define JUCE_QUICKTIME 0 | |||||
| #define JUCE_OPENGL 0 | |||||
| #define JUCE_USE_CDBURNER 0 | |||||
| #define JUCE_USE_CDREADER 0 | |||||
| #define JUCE_WEB_BROWSER 0 | |||||
| #define JUCE_PLUGINHOST_AU 0 | |||||
| #define JUCE_PLUGINHOST_VST 0 | |||||
| #endif | |||||
| #endif | #endif | ||||
| @@ -235,9 +235,7 @@ public: | |||||
| The button registers itself with its top-level parent component for keypresses. | The button registers itself with its top-level parent component for keypresses. | ||||
| Note that a different way of linking buttons to keypresses is by using the | Note that a different way of linking buttons to keypresses is by using the | ||||
| setKeyPressToTrigger() method to invoke a command - the difference being that | |||||
| setting a shortcut allows the button to be temporarily linked to a keypress | |||||
| only while it's on-screen. | |||||
| setCommandToTrigger() method to invoke a command. | |||||
| @see clearShortcuts | @see clearShortcuts | ||||
| */ | */ | ||||
| @@ -2474,7 +2474,7 @@ void LookAndFeel::drawPropertyPanelSectionHeader (Graphics& g, const String& nam | |||||
| const int buttonSize = (height * 3) / 4; | const int buttonSize = (height * 3) / 4; | ||||
| const int buttonIndent = (height - buttonSize) / 2; | const int buttonIndent = (height - buttonSize) / 2; | ||||
| drawTreeviewPlusMinusBox (g, buttonIndent, buttonIndent, buttonSize, buttonSize, ! isOpen); | |||||
| drawTreeviewPlusMinusBox (g, buttonIndent, buttonIndent, buttonSize, buttonSize, ! isOpen, false); | |||||
| const int textX = buttonIndent * 2 + buttonSize + 2; | const int textX = buttonIndent * 2 + buttonSize + 2; | ||||
| @@ -29,7 +29,7 @@ | |||||
| class EditableProperty; | class EditableProperty; | ||||
| #include "../juce_Component.h" | #include "../juce_Component.h" | ||||
| #include "../mouse/juce_TooltipClient.h" | |||||
| //============================================================================== | //============================================================================== | ||||
| /** | /** | ||||
| @@ -47,7 +47,8 @@ class EditableProperty; | |||||
| @see PropertyPanel, TextPropertyComponent, SliderPropertyComponent, | @see PropertyPanel, TextPropertyComponent, SliderPropertyComponent, | ||||
| ChoicePropertyComponent, ButtonPropertyComponent, BooleanPropertyComponent | ChoicePropertyComponent, ButtonPropertyComponent, BooleanPropertyComponent | ||||
| */ | */ | ||||
| class JUCE_API PropertyComponent : public Component | |||||
| class JUCE_API PropertyComponent : public Component, | |||||
| public SettableTooltipClient | |||||
| { | { | ||||
| public: | public: | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -88,7 +88,7 @@ public: | |||||
| component isn't visible can cause problems, because QuickTime needs a window | component isn't visible can cause problems, because QuickTime needs a window | ||||
| handle to do its stuff. | handle to do its stuff. | ||||
| @param movieFile the .mov file to open | |||||
| @param movieURL the .mov file to open | |||||
| @param isControllerVisible whether to show a controller bar at the bottom | @param isControllerVisible whether to show a controller bar at the bottom | ||||
| @returns true if the movie opens successfully | @returns true if the movie opens successfully | ||||
| */ | */ | ||||
| @@ -265,7 +265,7 @@ END_JUCE_NAMESPACE | |||||
| fromConnection: (QTCaptureConnection*) connection | fromConnection: (QTCaptureConnection*) connection | ||||
| { | { | ||||
| if (firstRecordedTime == 0) | if (firstRecordedTime == 0) | ||||
| firstRecordedTime = new Time (Time::getCurrentTime()); | |||||
| firstRecordedTime = new Time (Time::getCurrentTime() - RelativeTime::milliseconds (50)); | |||||
| } | } | ||||
| @end | @end | ||||