| @@ -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> | |||||