| @@ -1,69 +0,0 @@ | |||
| Juce Browser Plugin Framework | |||
| ============================= | |||
| These classes let you wrap a normal Juce component as a Mac/Windows NPAPI plugin for use in Firefox, | |||
| Safari, Chrome, etc., and/or an ActiveX plugin for IE. | |||
| To create your plugin, your code just needs to implement the createBrowserPlugin() function | |||
| to return a subclass of BrowserPluginComponent, and this acts as the plugin window. | |||
| To communicate with javascript running in the host webpage, the 'var' and 'DynamicObject' juce | |||
| classes emulate javascript objects, so you can create a javascript object that represents | |||
| your plugin, and the webpage can invoke methods and access properties on this object. To | |||
| get bi-directional communication between the plugin and webpage, your webpage can simply | |||
| pass its own object to your plugin, and the plugin can call methods on this object to invoke | |||
| javascript actions. | |||
| In a similar style to audio plugins, your project has to contain a BrowserPluginCharacteristics.h | |||
| file that defines various properties of the plugin. | |||
| Building a Mac NPAPI Plugin with XCode | |||
| -------------------------------------- | |||
| - Create a new "CFPlugin Bundle" project | |||
| - Add the juce wrapper source files to the project (have a look at the demo project to | |||
| find out which files this includes). | |||
| - Set up all the usual frameworks, etc, like you would for any other juce project. | |||
| - In the project or target settings, change the "Wrapper Extension" to "plugin" | |||
| - In your target, add a build phase "Build ResourceManager resources", and add the juce_NPAPI_MacResource.r file | |||
| to this step. | |||
| - Check that your info.plist contains the same items as the demo plugin, because these need to be set for the | |||
| browser to recognise it as a plugin. In particular, the "Bundle OS Type Code" should be set to BRPL. | |||
| - The finished bundle needs to be copied into "/Library/Internet Plug-Ins", so you might want to set up a | |||
| post-build copy step to do this automatically | |||
| Building a Windows NPAPI plugin in Visual Studio | |||
| ------------------------------------------------ | |||
| - Create a new project to build a win32 DLL | |||
| - Add the juce wrapper source files to the project (have a look at the demo project to | |||
| find out which files this includes). | |||
| - Your compiled plugin DLL must begin with the letters 'np' (in lower case) for it to be recognised as | |||
| a plugin, so you should make sure your target settings reflect this. | |||
| - To include the BrowserPluginCharacteristics.h file, you may need to add an include path to wherever this | |||
| file lives in your project. Don't use a global include path for this - just add it to the project's | |||
| search paths (both the c++ include paths and the resource include paths) | |||
| - (Refer to the normal juce instructions for setting up other project settings such as which c++ libs to link to etc) | |||
| - The finished plugin needs to be copied into "C:\Program Files\Mozilla Firefox\plugins", so you might want | |||
| to add a post-build step to copy it | |||
| - Note that the "browser plugins/wrapper/npapi" folder contains a copy of some NPAPI header files. If you're | |||
| building a closed-source project, please check the licensing details in these files to make sure | |||
| you're not breaking any Mozilla licensing restictions. | |||
| Building a Windows ActiveX control for Internet Explorer | |||
| -------------------------------------------------------- | |||
| - This is actually quite easy, because the same DLL that functions as an NPAPI plugin can | |||
| also be used as an ActiveX control. | |||
| - Just create a windows NPAPI plugin as described above, but add the juce_ActiveX_GlueCode.cpp | |||
| file to the project. | |||
| - In your BrowserPluginCharacteristics.h file, the JuceBrowserPlugin_ActiveXCLSID setting needs | |||
| to be given a unique GUID for your plugin. | |||
| - Because the plugin is a COM object, it doesn't matter where the DLL lives, but it needs to | |||
| be registered in the normal COM way, with regsvr32.exe. Note that on Vista, this command | |||
| needs to be run with administrator permissions for it to be able to write to the registry. | |||
| @@ -1,44 +0,0 @@ | |||
| #include "../../src/BrowserPluginCharacteristics.h" | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |||
| <plist version="1.0"> | |||
| <dict> | |||
| <key>CFBundleDevelopmentRegion</key> | |||
| <string>English</string> | |||
| <key>CFBundleExecutable</key> | |||
| <string>${EXECUTABLE_NAME}</string> | |||
| <key>CFBundleName</key> | |||
| <string>${PRODUCT_NAME}</string> | |||
| <key>CFBundleIconFile</key> | |||
| <string></string> | |||
| <key>CFBundleIdentifier</key> | |||
| <string>com.yourcompany.${PRODUCT_NAME:identifier}</string> | |||
| <key>CFBundleInfoDictionaryVersion</key> | |||
| <string>6.0</string> | |||
| <key>CFBundlePackageType</key> | |||
| <string>BRPL</string> | |||
| <key>CFBundleSignature</key> | |||
| <string>????</string> | |||
| <key>CFBundleVersion</key> | |||
| <string>1.0</string> | |||
| <key>CFBundleDisplayName</key> | |||
| <string>JuceBrowserPlugin_Desc</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>JuceBrowserPlugin_Version</string> | |||
| <key>WebPluginName</key> | |||
| <string>JuceBrowserPlugin_Name</string> | |||
| <key>WebPluginMIMETypes</key> | |||
| <dict> | |||
| <key>application/npjucedemo-plugin</key> | |||
| <dict> | |||
| <key>WebPluginExtensions</key> | |||
| <array> | |||
| <string>jucedemo</string> | |||
| </array> | |||
| <key>WebPluginTypeDescription</key> | |||
| <string>Juce Demo</string> | |||
| </dict> | |||
| </dict> | |||
| </dict> | |||
| </plist> | |||
| @@ -1,364 +0,0 @@ | |||
| // !$*UTF8*$! | |||
| { | |||
| archiveVersion = 1; | |||
| classes = { | |||
| }; | |||
| objectVersion = 45; | |||
| objects = { | |||
| /* Begin PBXBuildFile section */ | |||
| 8415443F13DED0F800D66D72 /* juce_NPAPI_MacResource.r in Rez */ = {isa = PBXBuildFile; fileRef = 8415443313DEB84C00D66D72 /* juce_NPAPI_MacResource.r */; }; | |||
| 8415449013DEEF0D00D66D72 /* juce_browser_plugin_wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8415448213DEEF0D00D66D72 /* juce_browser_plugin_wrapper.mm */; }; | |||
| 8415449213DEEF0D00D66D72 /* juce_core_wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8415448413DEEF0D00D66D72 /* juce_core_wrapper.mm */; }; | |||
| 8415449413DEEF0D00D66D72 /* juce_data_structures_wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8415448613DEEF0D00D66D72 /* juce_data_structures_wrapper.mm */; }; | |||
| 8415449613DEEF0D00D66D72 /* juce_events_wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8415448813DEEF0D00D66D72 /* juce_events_wrapper.mm */; }; | |||
| 8415449813DEEF0D00D66D72 /* juce_graphics_wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8415448A13DEEF0D00D66D72 /* juce_graphics_wrapper.mm */; }; | |||
| 8415449A13DEEF0D00D66D72 /* juce_gui_basics_wrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8415448C13DEEF0D00D66D72 /* juce_gui_basics_wrapper.mm */; }; | |||
| 841544B613DEF1DC00D66D72 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 841544B513DEF1DC00D66D72 /* QuartzCore.framework */; }; | |||
| 8415454713DF243A00D66D72 /* JuceBrowserPluginDemo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 842CC42E0FA5BD57008C7970 /* JuceBrowserPluginDemo.cpp */; }; | |||
| 842CC8E20FA5D26A008C7970 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8D30FA5D26A008C7970 /* Carbon.framework */; }; | |||
| 842CC8E30FA5D26A008C7970 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8D40FA5D26A008C7970 /* CoreFoundation.framework */; }; | |||
| 842CC8E40FA5D26A008C7970 /* DiscRecording.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8D50FA5D26A008C7970 /* DiscRecording.framework */; }; | |||
| 842CC8E50FA5D26A008C7970 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8D60FA5D26A008C7970 /* Cocoa.framework */; }; | |||
| 842CC8E60FA5D26A008C7970 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8D70FA5D26A008C7970 /* WebKit.framework */; }; | |||
| 842CC8E70FA5D26A008C7970 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8D80FA5D26A008C7970 /* AGL.framework */; }; | |||
| 842CC8E80FA5D26A008C7970 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8D90FA5D26A008C7970 /* CoreAudio.framework */; }; | |||
| 842CC8E90FA5D26A008C7970 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8DA0FA5D26A008C7970 /* CoreMIDI.framework */; }; | |||
| 842CC8EA0FA5D26A008C7970 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8DB0FA5D26A008C7970 /* IOKit.framework */; }; | |||
| 842CC8EB0FA5D26A008C7970 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8DC0FA5D26A008C7970 /* OpenGL.framework */; }; | |||
| 842CC8EC0FA5D26A008C7970 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8DD0FA5D26A008C7970 /* QuickTime.framework */; }; | |||
| 842CC8ED0FA5D26A008C7970 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8DE0FA5D26A008C7970 /* QTKit.framework */; }; | |||
| 842CC8EE0FA5D26A008C7970 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8DF0FA5D26A008C7970 /* CoreServices.framework */; }; | |||
| 842CC8EF0FA5D26A008C7970 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8E00FA5D26A008C7970 /* ApplicationServices.framework */; }; | |||
| 842CC8F00FA5D26A008C7970 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 842CC8E10FA5D26A008C7970 /* CoreFoundation.framework */; }; | |||
| 842CCB300FA5F201008C7970 /* JuceBrowserPluginDemo.plugin in CopyFiles */ = {isa = PBXBuildFile; fileRef = 842CC9360FA5D51F008C7970 /* JuceBrowserPluginDemo.plugin */; }; | |||
| /* End PBXBuildFile section */ | |||
| /* Begin PBXCopyFilesBuildPhase section */ | |||
| 842CCB3F0FA5F204008C7970 /* CopyFiles */ = { | |||
| isa = PBXCopyFilesBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| dstPath = "/Library/Internet Plug-Ins"; | |||
| dstSubfolderSpec = 0; | |||
| files = ( | |||
| 842CCB300FA5F201008C7970 /* JuceBrowserPluginDemo.plugin in CopyFiles */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXCopyFilesBuildPhase section */ | |||
| /* Begin PBXFileReference section */ | |||
| 8415442C13DEB82500D66D72 /* How to build a browser plugin.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "How to build a browser plugin.txt"; path = "../../How to build a browser plugin.txt"; sourceTree = SOURCE_ROOT; }; | |||
| 8415442E13DEB84C00D66D72 /* juce_ActiveX_GlueCode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_ActiveX_GlueCode.cpp; path = ../../../../modules/juce_browser_plugin_client/wrapper/juce_ActiveX_GlueCode.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 8415442F13DEB84C00D66D72 /* juce_BrowserPluginComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = juce_BrowserPluginComponent.h; path = ../../../../modules/juce_browser_plugin_client/wrapper/juce_BrowserPluginComponent.h; sourceTree = SOURCE_ROOT; }; | |||
| 8415443113DEB84C00D66D72 /* juce_NPAPI_GlueCode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = juce_NPAPI_GlueCode.cpp; path = ../../../../modules/juce_browser_plugin_client/wrapper/juce_NPAPI_GlueCode.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 8415443313DEB84C00D66D72 /* juce_NPAPI_MacResource.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; name = juce_NPAPI_MacResource.r; path = ../../../../modules/juce_browser_plugin_client/wrapper/juce_NPAPI_MacResource.r; sourceTree = SOURCE_ROOT; }; | |||
| 8415448213DEEF0D00D66D72 /* juce_browser_plugin_wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_browser_plugin_wrapper.mm; path = ../../src/juce_browser_plugin_wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 8415448413DEEF0D00D66D72 /* juce_core_wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_core_wrapper.mm; path = ../../src/juce_core_wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 8415448613DEEF0D00D66D72 /* juce_data_structures_wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_data_structures_wrapper.mm; path = ../../src/juce_data_structures_wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 8415448813DEEF0D00D66D72 /* juce_events_wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_events_wrapper.mm; path = ../../src/juce_events_wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 8415448A13DEEF0D00D66D72 /* juce_graphics_wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_graphics_wrapper.mm; path = ../../src/juce_graphics_wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 8415448C13DEEF0D00D66D72 /* juce_gui_basics_wrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = juce_gui_basics_wrapper.mm; path = ../../src/juce_gui_basics_wrapper.mm; sourceTree = SOURCE_ROOT; }; | |||
| 841544B513DEF1DC00D66D72 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; }; | |||
| 842CC42E0FA5BD57008C7970 /* JuceBrowserPluginDemo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JuceBrowserPluginDemo.cpp; path = ../../src/JuceBrowserPluginDemo.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 842CC4310FA5BD57008C7970 /* BrowserPluginCharacteristics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BrowserPluginCharacteristics.h; path = ../../src/BrowserPluginCharacteristics.h; sourceTree = SOURCE_ROOT; }; | |||
| 842CC8D30FA5D26A008C7970 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8D40FA5D26A008C7970 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8D50FA5D26A008C7970 /* DiscRecording.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = /System/Library/Frameworks/DiscRecording.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8D60FA5D26A008C7970 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8D70FA5D26A008C7970 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8D80FA5D26A008C7970 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8D90FA5D26A008C7970 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8DA0FA5D26A008C7970 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = /System/Library/Frameworks/CoreMIDI.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8DB0FA5D26A008C7970 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8DC0FA5D26A008C7970 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8DD0FA5D26A008C7970 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8DE0FA5D26A008C7970 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8DF0FA5D26A008C7970 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8E00FA5D26A008C7970 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; }; | |||
| 842CC8E10FA5D26A008C7970 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; | |||
| 842CC9360FA5D51F008C7970 /* JuceBrowserPluginDemo.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JuceBrowserPluginDemo.plugin; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 842CC93B0FA5D5D1008C7970 /* test.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = test.html; path = ../../test.html; sourceTree = SOURCE_ROOT; }; | |||
| 84F71BD913E6E86D00AFBCF3 /* AppConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../src/AppConfig.h; sourceTree = SOURCE_ROOT; }; | |||
| 84F71BDC13E6E8D900AFBCF3 /* JuceHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../src/JuceHeader.h; sourceTree = SOURCE_ROOT; }; | |||
| 8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | |||
| /* End PBXFileReference section */ | |||
| /* Begin PBXFrameworksBuildPhase section */ | |||
| 8D576313048677EA00EA77CD /* Frameworks */ = { | |||
| isa = PBXFrameworksBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 842CC8E20FA5D26A008C7970 /* Carbon.framework in Frameworks */, | |||
| 842CC8E30FA5D26A008C7970 /* CoreFoundation.framework in Frameworks */, | |||
| 842CC8E40FA5D26A008C7970 /* DiscRecording.framework in Frameworks */, | |||
| 842CC8E50FA5D26A008C7970 /* Cocoa.framework in Frameworks */, | |||
| 842CC8E60FA5D26A008C7970 /* WebKit.framework in Frameworks */, | |||
| 842CC8E70FA5D26A008C7970 /* AGL.framework in Frameworks */, | |||
| 842CC8E80FA5D26A008C7970 /* CoreAudio.framework in Frameworks */, | |||
| 842CC8E90FA5D26A008C7970 /* CoreMIDI.framework in Frameworks */, | |||
| 842CC8EA0FA5D26A008C7970 /* IOKit.framework in Frameworks */, | |||
| 842CC8EB0FA5D26A008C7970 /* OpenGL.framework in Frameworks */, | |||
| 842CC8EC0FA5D26A008C7970 /* QuickTime.framework in Frameworks */, | |||
| 842CC8ED0FA5D26A008C7970 /* QTKit.framework in Frameworks */, | |||
| 842CC8EE0FA5D26A008C7970 /* CoreServices.framework in Frameworks */, | |||
| 842CC8EF0FA5D26A008C7970 /* ApplicationServices.framework in Frameworks */, | |||
| 842CC8F00FA5D26A008C7970 /* CoreFoundation.framework in Frameworks */, | |||
| 841544B613DEF1DC00D66D72 /* QuartzCore.framework in Frameworks */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXFrameworksBuildPhase section */ | |||
| /* Begin PBXGroup section */ | |||
| 089C166AFE841209C02AAC07 /* JuceBrowserPluginDemo */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 08FB77AFFE84173DC02AAC07 /* Source */, | |||
| 089C167CFE841241C02AAC07 /* Resources */, | |||
| 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, | |||
| 842CC9370FA5D51F008C7970 /* Products */, | |||
| ); | |||
| name = JuceBrowserPluginDemo; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 842CC8D30FA5D26A008C7970 /* Carbon.framework */, | |||
| 842CC8D40FA5D26A008C7970 /* CoreFoundation.framework */, | |||
| 842CC8D50FA5D26A008C7970 /* DiscRecording.framework */, | |||
| 842CC8D60FA5D26A008C7970 /* Cocoa.framework */, | |||
| 842CC8D70FA5D26A008C7970 /* WebKit.framework */, | |||
| 842CC8D80FA5D26A008C7970 /* AGL.framework */, | |||
| 842CC8D90FA5D26A008C7970 /* CoreAudio.framework */, | |||
| 842CC8DA0FA5D26A008C7970 /* CoreMIDI.framework */, | |||
| 842CC8DB0FA5D26A008C7970 /* IOKit.framework */, | |||
| 842CC8DC0FA5D26A008C7970 /* OpenGL.framework */, | |||
| 842CC8DD0FA5D26A008C7970 /* QuickTime.framework */, | |||
| 842CC8DE0FA5D26A008C7970 /* QTKit.framework */, | |||
| 842CC8DF0FA5D26A008C7970 /* CoreServices.framework */, | |||
| 842CC8E00FA5D26A008C7970 /* ApplicationServices.framework */, | |||
| 842CC8E10FA5D26A008C7970 /* CoreFoundation.framework */, | |||
| 841544B513DEF1DC00D66D72 /* QuartzCore.framework */, | |||
| ); | |||
| name = "External Frameworks and Libraries"; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 089C167CFE841241C02AAC07 /* Resources */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8D576317048677EA00EA77CD /* Info.plist */, | |||
| ); | |||
| name = Resources; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 08FB77AFFE84173DC02AAC07 /* Source */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 8415442C13DEB82500D66D72 /* How to build a browser plugin.txt */, | |||
| 842CC93B0FA5D5D1008C7970 /* test.html */, | |||
| 842CC4130FA5BB01008C7970 /* wrapper code */, | |||
| 842CC42E0FA5BD57008C7970 /* JuceBrowserPluginDemo.cpp */, | |||
| 842CC4310FA5BD57008C7970 /* BrowserPluginCharacteristics.h */, | |||
| ); | |||
| name = Source; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 842CC4130FA5BB01008C7970 /* wrapper code */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 84F71BDC13E6E8D900AFBCF3 /* JuceHeader.h */, | |||
| 84F71BD913E6E86D00AFBCF3 /* AppConfig.h */, | |||
| 8415448213DEEF0D00D66D72 /* juce_browser_plugin_wrapper.mm */, | |||
| 8415448413DEEF0D00D66D72 /* juce_core_wrapper.mm */, | |||
| 8415448613DEEF0D00D66D72 /* juce_data_structures_wrapper.mm */, | |||
| 8415448813DEEF0D00D66D72 /* juce_events_wrapper.mm */, | |||
| 8415448A13DEEF0D00D66D72 /* juce_graphics_wrapper.mm */, | |||
| 8415448C13DEEF0D00D66D72 /* juce_gui_basics_wrapper.mm */, | |||
| 8415442E13DEB84C00D66D72 /* juce_ActiveX_GlueCode.cpp */, | |||
| 8415442F13DEB84C00D66D72 /* juce_BrowserPluginComponent.h */, | |||
| 8415443113DEB84C00D66D72 /* juce_NPAPI_GlueCode.cpp */, | |||
| 8415443313DEB84C00D66D72 /* juce_NPAPI_MacResource.r */, | |||
| ); | |||
| name = "wrapper code"; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| 842CC9370FA5D51F008C7970 /* Products */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 842CC9360FA5D51F008C7970 /* JuceBrowserPluginDemo.plugin */, | |||
| ); | |||
| name = Products; | |||
| sourceTree = "<group>"; | |||
| }; | |||
| /* End PBXGroup section */ | |||
| /* Begin PBXNativeTarget section */ | |||
| 8D57630D048677EA00EA77CD /* JuceBrowserPluginDemo */ = { | |||
| isa = PBXNativeTarget; | |||
| buildConfigurationList = 1DEB911A08733D790010E9CD /* Build configuration list for PBXNativeTarget "JuceBrowserPluginDemo" */; | |||
| buildPhases = ( | |||
| 842CC9580FA5D939008C7970 /* Rez */, | |||
| 8D57630F048677EA00EA77CD /* Resources */, | |||
| 8D576311048677EA00EA77CD /* Sources */, | |||
| 8D576313048677EA00EA77CD /* Frameworks */, | |||
| 842CCB3F0FA5F204008C7970 /* CopyFiles */, | |||
| ); | |||
| buildRules = ( | |||
| ); | |||
| dependencies = ( | |||
| ); | |||
| name = JuceBrowserPluginDemo; | |||
| productInstallPath = "$(HOME)/Library/Bundles"; | |||
| productName = JuceBrowserPluginDemo; | |||
| productReference = 842CC9360FA5D51F008C7970 /* JuceBrowserPluginDemo.plugin */; | |||
| productType = "com.apple.product-type.bundle"; | |||
| }; | |||
| /* End PBXNativeTarget section */ | |||
| /* Begin PBXProject section */ | |||
| 089C1669FE841209C02AAC07 /* Project object */ = { | |||
| isa = PBXProject; | |||
| buildConfigurationList = 1DEB911E08733D790010E9CD /* Build configuration list for PBXProject "JuceBrowserPluginDemo" */; | |||
| compatibilityVersion = "Xcode 3.1"; | |||
| developmentRegion = English; | |||
| hasScannedForEncodings = 1; | |||
| knownRegions = ( | |||
| English, | |||
| Japanese, | |||
| French, | |||
| German, | |||
| ); | |||
| mainGroup = 089C166AFE841209C02AAC07 /* JuceBrowserPluginDemo */; | |||
| productRefGroup = 842CC9370FA5D51F008C7970 /* Products */; | |||
| projectDirPath = ""; | |||
| projectRoot = ""; | |||
| targets = ( | |||
| 8D57630D048677EA00EA77CD /* JuceBrowserPluginDemo */, | |||
| ); | |||
| }; | |||
| /* End PBXProject section */ | |||
| /* Begin PBXResourcesBuildPhase section */ | |||
| 8D57630F048677EA00EA77CD /* Resources */ = { | |||
| isa = PBXResourcesBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXResourcesBuildPhase section */ | |||
| /* Begin PBXRezBuildPhase section */ | |||
| 842CC9580FA5D939008C7970 /* Rez */ = { | |||
| isa = PBXRezBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 8415443F13DED0F800D66D72 /* juce_NPAPI_MacResource.r in Rez */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXRezBuildPhase section */ | |||
| /* Begin PBXSourcesBuildPhase section */ | |||
| 8D576311048677EA00EA77CD /* Sources */ = { | |||
| isa = PBXSourcesBuildPhase; | |||
| buildActionMask = 2147483647; | |||
| files = ( | |||
| 8415449013DEEF0D00D66D72 /* juce_browser_plugin_wrapper.mm in Sources */, | |||
| 8415449213DEEF0D00D66D72 /* juce_core_wrapper.mm in Sources */, | |||
| 8415449413DEEF0D00D66D72 /* juce_data_structures_wrapper.mm in Sources */, | |||
| 8415449613DEEF0D00D66D72 /* juce_events_wrapper.mm in Sources */, | |||
| 8415449813DEEF0D00D66D72 /* juce_graphics_wrapper.mm in Sources */, | |||
| 8415449A13DEEF0D00D66D72 /* juce_gui_basics_wrapper.mm in Sources */, | |||
| 8415454713DF243A00D66D72 /* JuceBrowserPluginDemo.cpp in Sources */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| /* End PBXSourcesBuildPhase section */ | |||
| /* Begin XCBuildConfiguration section */ | |||
| 1DEB911B08733D790010E9CD /* Debug */ = { | |||
| isa = XCBuildConfiguration; | |||
| buildSettings = { | |||
| ALWAYS_SEARCH_USER_PATHS = NO; | |||
| COPY_PHASE_STRIP = NO; | |||
| GCC_DYNAMIC_NO_PIC = NO; | |||
| GCC_ENABLE_FIX_AND_CONTINUE = YES; | |||
| GCC_MODEL_TUNING = G5; | |||
| GCC_OPTIMIZATION_LEVEL = 0; | |||
| GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1"; | |||
| INFOPLIST_FILE = Info.plist; | |||
| INFOPLIST_PREPROCESS = YES; | |||
| INSTALL_PATH = "$(HOME)/Library/Bundles"; | |||
| PRODUCT_NAME = JuceBrowserPluginDemo; | |||
| WRAPPER_EXTENSION = plugin; | |||
| }; | |||
| name = Debug; | |||
| }; | |||
| 1DEB911C08733D790010E9CD /* Release */ = { | |||
| isa = XCBuildConfiguration; | |||
| buildSettings = { | |||
| ALWAYS_SEARCH_USER_PATHS = NO; | |||
| DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; | |||
| GCC_MODEL_TUNING = G5; | |||
| GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; | |||
| INFOPLIST_FILE = Info.plist; | |||
| INFOPLIST_PREPROCESS = YES; | |||
| INSTALL_PATH = "$(HOME)/Library/Bundles"; | |||
| PRODUCT_NAME = JuceBrowserPluginDemo; | |||
| WRAPPER_EXTENSION = plugin; | |||
| }; | |||
| name = Release; | |||
| }; | |||
| 1DEB911F08733D790010E9CD /* Debug */ = { | |||
| isa = XCBuildConfiguration; | |||
| buildSettings = { | |||
| ARCHS = "$(ARCHS_STANDARD_32_BIT)"; | |||
| GCC_C_LANGUAGE_STANDARD = c99; | |||
| GCC_OPTIMIZATION_LEVEL = 0; | |||
| GCC_WARN_ABOUT_RETURN_TYPE = YES; | |||
| GCC_WARN_UNUSED_VARIABLE = YES; | |||
| ONLY_ACTIVE_ARCH = YES; | |||
| PREBINDING = NO; | |||
| }; | |||
| name = Debug; | |||
| }; | |||
| 1DEB912008733D790010E9CD /* Release */ = { | |||
| isa = XCBuildConfiguration; | |||
| buildSettings = { | |||
| ARCHS = "$(ARCHS_STANDARD_32_BIT)"; | |||
| GCC_C_LANGUAGE_STANDARD = c99; | |||
| GCC_WARN_ABOUT_RETURN_TYPE = YES; | |||
| GCC_WARN_UNUSED_VARIABLE = YES; | |||
| PREBINDING = NO; | |||
| SDKROOT = macosx10.5; | |||
| }; | |||
| name = Release; | |||
| }; | |||
| /* End XCBuildConfiguration section */ | |||
| /* Begin XCConfigurationList section */ | |||
| 1DEB911A08733D790010E9CD /* Build configuration list for PBXNativeTarget "JuceBrowserPluginDemo" */ = { | |||
| isa = XCConfigurationList; | |||
| buildConfigurations = ( | |||
| 1DEB911B08733D790010E9CD /* Debug */, | |||
| 1DEB911C08733D790010E9CD /* Release */, | |||
| ); | |||
| defaultConfigurationIsVisible = 0; | |||
| defaultConfigurationName = Release; | |||
| }; | |||
| 1DEB911E08733D790010E9CD /* Build configuration list for PBXProject "JuceBrowserPluginDemo" */ = { | |||
| isa = XCConfigurationList; | |||
| buildConfigurations = ( | |||
| 1DEB911F08733D790010E9CD /* Debug */, | |||
| 1DEB912008733D790010E9CD /* Release */, | |||
| ); | |||
| defaultConfigurationIsVisible = 0; | |||
| defaultConfigurationName = Release; | |||
| }; | |||
| /* End XCConfigurationList section */ | |||
| }; | |||
| rootObject = 089C1669FE841209C02AAC07 /* Project object */; | |||
| } | |||
| @@ -1,20 +0,0 @@ | |||
|  | |||
| Microsoft Visual Studio Solution File, Format Version 10.00 | |||
| # Visual C++ Express 2008 | |||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JuceBrowserPluginDemo", "JuceBrowserPluginDemo.vcproj", "{865C6463-5BC7-4F36-8667-FF9221C32797}" | |||
| EndProject | |||
| Global | |||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
| Debug|Win32 = Debug|Win32 | |||
| Release|Win32 = Release|Win32 | |||
| EndGlobalSection | |||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | |||
| {865C6463-5BC7-4F36-8667-FF9221C32797}.Debug|Win32.ActiveCfg = Debug|Win32 | |||
| {865C6463-5BC7-4F36-8667-FF9221C32797}.Debug|Win32.Build.0 = Debug|Win32 | |||
| {865C6463-5BC7-4F36-8667-FF9221C32797}.Release|Win32.ActiveCfg = Release|Win32 | |||
| {865C6463-5BC7-4F36-8667-FF9221C32797}.Release|Win32.Build.0 = Release|Win32 | |||
| EndGlobalSection | |||
| GlobalSection(SolutionProperties) = preSolution | |||
| HideSolutionNode = FALSE | |||
| EndGlobalSection | |||
| EndGlobal | |||
| @@ -1,232 +0,0 @@ | |||
| <?xml version="1.0" encoding="Windows-1252"?> | |||
| <VisualStudioProject | |||
| ProjectType="Visual C++" | |||
| Version="9.00" | |||
| Name="JuceBrowserPluginDemo" | |||
| ProjectGUID="{865C6463-5BC7-4F36-8667-FF9221C32797}" | |||
| RootNamespace="JuceBrowserPluginDemo" | |||
| Keyword="Win32Proj" | |||
| TargetFrameworkVersion="196613" | |||
| > | |||
| <Platforms> | |||
| <Platform | |||
| Name="Win32" | |||
| /> | |||
| </Platforms> | |||
| <ToolFiles> | |||
| </ToolFiles> | |||
| <Configurations> | |||
| <Configuration | |||
| Name="Debug|Win32" | |||
| OutputDirectory="$(SolutionDir)$(ConfigurationName)" | |||
| IntermediateDirectory="$(ConfigurationName)" | |||
| ConfigurationType="2" | |||
| CharacterSet="1" | |||
| > | |||
| <Tool | |||
| Name="VCPreBuildEventTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCustomBuildTool" | |||
| /> | |||
| <Tool | |||
| Name="VCXMLDataGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCWebServiceProxyGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCMIDLTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCLCompilerTool" | |||
| Optimization="0" | |||
| AdditionalIncludeDirectories="../../src" | |||
| PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;JUCEBROWSERPLUGINDEMO_EXPORTS" | |||
| MinimalRebuild="false" | |||
| BasicRuntimeChecks="3" | |||
| RuntimeLibrary="1" | |||
| UsePrecompiledHeader="0" | |||
| WarningLevel="3" | |||
| DebugInformationFormat="4" | |||
| /> | |||
| <Tool | |||
| Name="VCManagedResourceCompilerTool" | |||
| /> | |||
| <Tool | |||
| Name="VCResourceCompilerTool" | |||
| AdditionalIncludeDirectories="../../src" | |||
| /> | |||
| <Tool | |||
| Name="VCPreLinkEventTool" | |||
| /> | |||
| <Tool | |||
| Name="VCLinkerTool" | |||
| OutputFile="$(OutDir)\np$(ProjectName).dll" | |||
| LinkIncremental="2" | |||
| GenerateDebugInformation="true" | |||
| SubSystem="2" | |||
| TargetMachine="1" | |||
| /> | |||
| <Tool | |||
| Name="VCALinkTool" | |||
| /> | |||
| <Tool | |||
| Name="VCManifestTool" | |||
| /> | |||
| <Tool | |||
| Name="VCXDCMakeTool" | |||
| /> | |||
| <Tool | |||
| Name="VCBscMakeTool" | |||
| /> | |||
| <Tool | |||
| Name="VCFxCopTool" | |||
| /> | |||
| <Tool | |||
| Name="VCAppVerifierTool" | |||
| /> | |||
| <Tool | |||
| Name="VCPostBuildEventTool" | |||
| CommandLine="copy /Y "$(TargetPath)" "C:\Program Files\Mozilla Firefox\plugins"" | |||
| /> | |||
| </Configuration> | |||
| <Configuration | |||
| Name="Release|Win32" | |||
| OutputDirectory="$(SolutionDir)$(ConfigurationName)" | |||
| IntermediateDirectory="$(ConfigurationName)" | |||
| ConfigurationType="2" | |||
| CharacterSet="1" | |||
| WholeProgramOptimization="1" | |||
| > | |||
| <Tool | |||
| Name="VCPreBuildEventTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCustomBuildTool" | |||
| /> | |||
| <Tool | |||
| Name="VCXMLDataGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCWebServiceProxyGeneratorTool" | |||
| /> | |||
| <Tool | |||
| Name="VCMIDLTool" | |||
| /> | |||
| <Tool | |||
| Name="VCCLCompilerTool" | |||
| Optimization="2" | |||
| EnableIntrinsicFunctions="true" | |||
| AdditionalIncludeDirectories="../../src" | |||
| PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;JUCEBROWSERPLUGINDEMO_EXPORTS" | |||
| RuntimeLibrary="0" | |||
| EnableFunctionLevelLinking="true" | |||
| UsePrecompiledHeader="0" | |||
| WarningLevel="3" | |||
| DebugInformationFormat="3" | |||
| /> | |||
| <Tool | |||
| Name="VCManagedResourceCompilerTool" | |||
| /> | |||
| <Tool | |||
| Name="VCResourceCompilerTool" | |||
| AdditionalIncludeDirectories="../../src" | |||
| /> | |||
| <Tool | |||
| Name="VCPreLinkEventTool" | |||
| /> | |||
| <Tool | |||
| Name="VCLinkerTool" | |||
| OutputFile="$(OutDir)\np$(ProjectName).dll" | |||
| LinkIncremental="1" | |||
| GenerateDebugInformation="true" | |||
| SubSystem="2" | |||
| OptimizeReferences="2" | |||
| EnableCOMDATFolding="2" | |||
| TargetMachine="1" | |||
| /> | |||
| <Tool | |||
| Name="VCALinkTool" | |||
| /> | |||
| <Tool | |||
| Name="VCManifestTool" | |||
| /> | |||
| <Tool | |||
| Name="VCXDCMakeTool" | |||
| /> | |||
| <Tool | |||
| Name="VCBscMakeTool" | |||
| /> | |||
| <Tool | |||
| Name="VCFxCopTool" | |||
| /> | |||
| <Tool | |||
| Name="VCAppVerifierTool" | |||
| /> | |||
| <Tool | |||
| Name="VCPostBuildEventTool" | |||
| /> | |||
| </Configuration> | |||
| </Configurations> | |||
| <References> | |||
| </References> | |||
| <Files> | |||
| <Filter | |||
| Name="Source Files" | |||
| Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" | |||
| UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" | |||
| > | |||
| <File | |||
| RelativePath="..\..\src\BrowserPluginCharacteristics.h" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\JuceBrowserPluginDemo.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\JuceHeader.h" | |||
| > | |||
| </File> | |||
| <Filter | |||
| Name="wrapper" | |||
| > | |||
| <File | |||
| RelativePath="..\..\src\AppConfig.h" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_browser_plugin_wrapper.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_core_wrapper.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_data_structures_wrapper.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_events_wrapper.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_graphics_wrapper.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\src\juce_gui_basics_wrapper.cpp" | |||
| > | |||
| </File> | |||
| <File | |||
| RelativePath="..\..\..\..\modules\juce_browser_plugin_client\wrapper\juce_NPAPI_WinResource.rc" | |||
| > | |||
| </File> | |||
| </Filter> | |||
| </Filter> | |||
| </Files> | |||
| <Globals> | |||
| </Globals> | |||
| </VisualStudioProject> | |||
| @@ -1,6 +0,0 @@ | |||
| #define JUCE_MODULE_AVAILABLE_juce_core 1 | |||
| #include "BrowserPluginCharacteristics.h" | |||
| @@ -1,42 +0,0 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file contains values that describe your plugin's behaviour. | |||
| ============================================================================== | |||
| */ | |||
| //============================================================================== | |||
| #define JuceBrowserPlugin_Company "ROLI Ltd" | |||
| #define JuceBrowserPlugin_Name "Juce Plugin Demo!" | |||
| #define JuceBrowserPlugin_Desc "Juce Browser Plugin Demo!" | |||
| //============================================================================== | |||
| /** This should be the same version number, in different forms.. | |||
| */ | |||
| #define JuceBrowserPlugin_Version "0.1" | |||
| #define JuceBrowserPlugin_WinVersion 0, 0, 1, 0 | |||
| //============================================================================== | |||
| /** This is the mime-type of the plugin. | |||
| In your HTML, this is the 'type' parameter of the embed tag, e.g. | |||
| <embed id="plugin" type="application/npjucedemo-plugin" width=90% height=500> | |||
| These two macros must be the same string, but the "raw" one shouldn't have quotes around it. | |||
| */ | |||
| #define JuceBrowserPlugin_MimeType_Raw application/npjucedemo-plugin | |||
| #define JuceBrowserPlugin_MimeType "application/npjucedemo-plugin" | |||
| //============================================================================== | |||
| /** Because plugins are associated with a file-type, this is the suffix of the file type the plugin | |||
| can open. If you don't need to use it, just use a made-up name here. | |||
| */ | |||
| #define JuceBrowserPlugin_FileSuffix ".jucedemo" | |||
| /** If you're building an activeX version, you'll need to create a unique GUID for | |||
| your plugin. Use a tool like uuidgen.exe to create this. | |||
| */ | |||
| #define JuceBrowserPlugin_ActiveXCLSID "F683B990-3ADF-11DE-BDFE-F9CB55D89593" | |||
| @@ -1,141 +0,0 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file is part of the JUCE library. | |||
| Copyright (c) 2015 - ROLI Ltd. | |||
| Permission is granted to use this software under the terms of either: | |||
| a) the GPL v2 (or any later version) | |||
| b) the Affero GPL v3 | |||
| Details of these licenses can be found at: www.gnu.org/licenses | |||
| JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||
| ------------------------------------------------------------------------------ | |||
| To release a closed-source product which uses JUCE, commercial licenses are | |||
| available: visit www.juce.com for more information. | |||
| ============================================================================== | |||
| */ | |||
| #include "JuceHeader.h" | |||
| //============================================================================== | |||
| /** | |||
| This is our top-level component for our plugin.. | |||
| */ | |||
| class JuceDemoBrowserPlugin : public BrowserPluginComponent, | |||
| public Button::Listener | |||
| { | |||
| public: | |||
| JuceDemoBrowserPlugin() | |||
| : textBox (String::empty), | |||
| button ("Send a message to the webpage") | |||
| { | |||
| addAndMakeVisible (textBox); | |||
| textBox.setMultiLine (true); | |||
| textBox.setBounds (8, 8, 300, 300); | |||
| addAndMakeVisible (button); | |||
| button.setBounds (320, 8, 180, 22); | |||
| button.addListener (this); | |||
| button.setEnabled (false); | |||
| ourJavascriptObject = new DemoBrowserObject (this); | |||
| textBox.setText (SystemStats::getJUCEVersion() + "\n\n" | |||
| + "Browser: " + getBrowserVersion()); | |||
| } | |||
| var getJavascriptObject() | |||
| { | |||
| // The browser calls this to get the javascript object that represents our plugin.. | |||
| return ourJavascriptObject; | |||
| } | |||
| void paint (Graphics& g) | |||
| { | |||
| g.fillAll (Colours::lightblue); | |||
| } | |||
| void setJavascriptObjectFromBrowser (var callbackObject) | |||
| { | |||
| javascriptObjectFromBrowser = callbackObject; | |||
| button.setEnabled (javascriptObjectFromBrowser.isObject()); | |||
| } | |||
| void buttonClicked (Button*) | |||
| { | |||
| javascriptObjectFromBrowser.call ("printmessage", "This is a message sent from the plugin..."); | |||
| } | |||
| var ourJavascriptObject; | |||
| var javascriptObjectFromBrowser; | |||
| TextEditor textBox; | |||
| TextButton button; | |||
| //============================================================================== | |||
| /** This is the javascript object that the browser uses when the webpage accesses | |||
| methods or properties on our plugin object. | |||
| */ | |||
| class DemoBrowserObject : public DynamicObject | |||
| { | |||
| public: | |||
| DemoBrowserObject (JuceDemoBrowserPlugin* bp) : owner (bp) | |||
| { | |||
| // Add a couple of methods to our object.. | |||
| setMethod ("printText", printText); | |||
| setMethod ("popUpMessageBox", popUpMessageBox); | |||
| setMethod ("registerCallbackObject", registerCallbackObject); | |||
| // Add some value properties that the webpage can access | |||
| setProperty ("property1", "testing testing..."); | |||
| setProperty ("property2", 12345678.0); | |||
| } | |||
| //============================================================================== | |||
| // These methods are called by javascript in the webpage... | |||
| static var printText (const var::NativeFunctionArgs& args) | |||
| { | |||
| if (DemoBrowserObject* b = dynamic_cast<DemoBrowserObject*> (args.thisObject.getObject())) | |||
| if (args.numArguments > 0) | |||
| b->owner->textBox.setText (b->owner->textBox.getText() + "\n" + args.arguments[0].toString()); | |||
| return "text was printed ok!"; | |||
| } | |||
| static var popUpMessageBox (const var::NativeFunctionArgs& args) | |||
| { | |||
| if (DemoBrowserObject* b = dynamic_cast<DemoBrowserObject*> (args.thisObject.getObject())) | |||
| if (args.numArguments > 0) | |||
| AlertWindow::showMessageBox (AlertWindow::InfoIcon, | |||
| "A message from the webpage", | |||
| args.arguments[0].toString(), | |||
| String::empty, b->owner); | |||
| return var(); | |||
| } | |||
| static var registerCallbackObject (const var::NativeFunctionArgs& args) | |||
| { | |||
| if (DemoBrowserObject* b = dynamic_cast<DemoBrowserObject*> (args.thisObject.getObject())) | |||
| if (args.numArguments > 0) | |||
| b->owner->setJavascriptObjectFromBrowser (args.arguments[0]); | |||
| return var(); | |||
| } | |||
| //============================================================================== | |||
| JuceDemoBrowserPlugin* owner; | |||
| }; | |||
| }; | |||
| BrowserPluginComponent* JUCE_CALLTYPE createBrowserPlugin() | |||
| { | |||
| return new JuceDemoBrowserPlugin(); | |||
| } | |||
| @@ -1,18 +0,0 @@ | |||
| /* | |||
| ============================================================================== | |||
| This file contains values that describe your plugin's behaviour. | |||
| ============================================================================== | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_browser_plugin_client/juce_browser_plugin.h" | |||
| #if ! DONT_SET_USING_JUCE_NAMESPACE | |||
| /* If you're not mixing JUCE with other libraries, then this will obviously save | |||
| a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. | |||
| */ | |||
| using namespace juce; | |||
| #endif | |||
| @@ -1,4 +0,0 @@ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_browser_plugin_client/juce_browser_plugin.cpp" | |||
| @@ -1,4 +0,0 @@ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_browser_plugin_client/juce_browser_plugin.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_core/juce_core.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_core/juce_core.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_data_structures/juce_data_structures.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_data_structures/juce_data_structures.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_events/juce_events.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_events/juce_events.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_graphics/juce_graphics.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_graphics/juce_graphics.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_gui_basics/juce_gui_basics.cpp" | |||
| @@ -1,15 +0,0 @@ | |||
| /* | |||
| IMPORTANT! This file is auto-generated each time you save your | |||
| project - if you alter its contents, your changes may be overwritten! | |||
| This file pulls in a module's source code, and builds it using the settings | |||
| defined in AppConfig.h. | |||
| If you want to change the method by which Juce is linked into your app, use the | |||
| Jucer to change it, rather than trying to edit this file directly. | |||
| */ | |||
| #include "AppConfig.h" | |||
| #include "../../../modules/juce_gui_basics/juce_gui_basics.cpp" | |||
| @@ -1,69 +0,0 @@ | |||
| <HTML><HEAD><TITLE>Juce Plugin Test</TITLE></HEAD> | |||
| <BODY> | |||
| <center> | |||
| <script> | |||
| function printmessage(arg) | |||
| { | |||
| document.getElementById ("result").innerHTML += "<p>" + arg + "</p>"; | |||
| } | |||
| function getPlugin() | |||
| { | |||
| return document.getElementById ("plugin"); | |||
| } | |||
| function showAMessage() | |||
| { | |||
| var response = getPlugin().printText ("This is a message sent from the website's javascript..."); | |||
| printmessage (response); | |||
| } | |||
| function popUpMessageBox() | |||
| { | |||
| // fetch a couple of properties from the plugin and tell the plugin to show them in a pop-up box.. | |||
| getPlugin().popUpMessageBox ("property1 = " + getPlugin().property1 | |||
| + "\nproperty2 = " + getPlugin().property2); | |||
| } | |||
| // callbacks from plugin... | |||
| function WebpageCallbacks() | |||
| { | |||
| this.printmessage = printmessage; | |||
| } | |||
| function sendCallbackObjectToPlugin() | |||
| { | |||
| // This gives the plugin an object containing methods that it can call, so that it | |||
| // can trigger events in the webpage.. | |||
| getPlugin().registerCallbackObject (new WebpageCallbacks()); | |||
| } | |||
| </script> | |||
| <script> | |||
| if (navigator.appName == "Microsoft Internet Explorer") | |||
| { | |||
| document.write('<object id="plugin" type="application/npjucedemo-plugin" classid="CLSID:F683B990-3ADF-11DE-BDFE-F9CB55D89593" width="80%" height="400"></object>'); | |||
| } | |||
| else | |||
| { | |||
| document.write('<embed id="plugin" src="" type="application/npjucedemo-plugin" width="80%" height="400"></embed>'); | |||
| } | |||
| </script> | |||
| <noscript> | |||
| <embed id="plugin" src="" type="application/npjucedemo-plugin" width="80%" height="400"></embed> | |||
| </noscript> | |||
| <br> | |||
| <form name="formname"> | |||
| <input type=button value="Tell the plugin to show a message" onclick='showAMessage()'> | |||
| <input type=button value="Tell the plugin to show a pop-up" onclick='popUpMessageBox()'> | |||
| <input type=button value="Pass a callback object to the plugin" onclick='sendCallbackObjectToPlugin()'> | |||
| </form> | |||
| <div id="result"></div> | |||
| </center> | |||
| </BODY></HTML> | |||