From c03d784a130c003dede83e93d2563f07a33f914e Mon Sep 17 00:00:00 2001 From: heck Date: Thu, 10 Aug 2023 15:49:49 +0200 Subject: [PATCH] init --- .../HelloWorldDemo.xcodeproj/project.pbxproj | 510 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 24512 bytes .../xcschemes/xcschememanagement.plist | 14 + Builds/MacOSX/Info-App.plist | 29 + Builds/MacOSX/RecentFilesMenuTemplate.nib | Bin 0 -> 2842 bytes HelloWorldDemo.jucer | 76 +++ JuceLibraryCode/JuceHeader.h | 46 ++ JuceLibraryCode/ReadMe.txt | 12 + JuceLibraryCode/include_juce_core.cpp | 8 + JuceLibraryCode/include_juce_core.mm | 8 + .../include_juce_data_structures.cpp | 8 + .../include_juce_data_structures.mm | 8 + JuceLibraryCode/include_juce_events.cpp | 8 + JuceLibraryCode/include_juce_events.mm | 8 + JuceLibraryCode/include_juce_graphics.cpp | 8 + JuceLibraryCode/include_juce_graphics.mm | 8 + JuceLibraryCode/include_juce_gui_basics.cpp | 8 + JuceLibraryCode/include_juce_gui_basics.mm | 8 + Source/HelloWorldDemo.h | 168 ++++++ Source/Main.cpp | 63 +++ 22 files changed, 1013 insertions(+) create mode 100644 Builds/MacOSX/HelloWorldDemo.xcodeproj/project.pbxproj create mode 100644 Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/xcuserdata/heck.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Builds/MacOSX/HelloWorldDemo.xcodeproj/xcuserdata/heck.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Builds/MacOSX/Info-App.plist create mode 100644 Builds/MacOSX/RecentFilesMenuTemplate.nib create mode 100644 HelloWorldDemo.jucer create mode 100644 JuceLibraryCode/JuceHeader.h create mode 100644 JuceLibraryCode/ReadMe.txt create mode 100644 JuceLibraryCode/include_juce_core.cpp create mode 100644 JuceLibraryCode/include_juce_core.mm create mode 100644 JuceLibraryCode/include_juce_data_structures.cpp create mode 100644 JuceLibraryCode/include_juce_data_structures.mm create mode 100644 JuceLibraryCode/include_juce_events.cpp create mode 100644 JuceLibraryCode/include_juce_events.mm create mode 100644 JuceLibraryCode/include_juce_graphics.cpp create mode 100644 JuceLibraryCode/include_juce_graphics.mm create mode 100644 JuceLibraryCode/include_juce_gui_basics.cpp create mode 100644 JuceLibraryCode/include_juce_gui_basics.mm create mode 100644 Source/HelloWorldDemo.h create mode 100644 Source/Main.cpp diff --git a/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.pbxproj b/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c67348e --- /dev/null +++ b/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.pbxproj @@ -0,0 +1,510 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 0699CAC43FF40F8C8353B6F3 /* include_juce_data_structures.mm in Sources */ = {isa = PBXBuildFile; fileRef = 39A38CBA134161AD8FA64899 /* include_juce_data_structures.mm */; }; + 0F0A60C569C0339E6F93D0DE /* include_juce_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2074B52EC43544A699F6A157 /* include_juce_core.mm */; }; + 183F99579A53365BD379126E /* include_juce_events.mm in Sources */ = {isa = PBXBuildFile; fileRef = C8B4DE0955A4E36F3F559F40 /* include_juce_events.mm */; }; + 1AAA3EF567822A8FB9573C33 /* include_juce_gui_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9AEC65989DCBE30E6C8DA7CB /* include_juce_gui_basics.mm */; }; + 33FDCBC88B2CC866A748B87C /* include_juce_graphics.mm in Sources */ = {isa = PBXBuildFile; fileRef = EB807D4F84D10CC55ED63A76 /* include_juce_graphics.mm */; }; + 50FE42A5C0417BF97C544A26 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1F338292664601BF133048D /* Cocoa.framework */; }; + 58F81FF61B2E3330A4DC84D5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD1AE6443A798B33984E52C9 /* Foundation.framework */; }; + 5B5A2F3BA0ADA4C6C0FCB89A /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4379C7B6AFDC3C5B757D5764 /* IOKit.framework */; }; + 5C4FFCDF8D6FDF200EC517F5 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A95C42174C07FAA2B2B65C4C /* Security.framework */; }; + 8A4DDBE72A850D4F0032C112 /* libch341eeprom.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A4DDBE62A850D190032C112 /* libch341eeprom.a */; }; + 8A4DDBE82A850D660032C112 /* libusb-1.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A4DDBE52A850BFC0032C112 /* libusb-1.0.a */; }; + A237F9B254E95B3173479FF5 /* Main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7DABA4EA84ACAB407A52BAE /* Main.cpp */; }; + F7500DD6050381FC1C00196C /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0050B1C17FE29F9C95B64D51 /* QuartzCore.framework */; }; + FB5FD2A4E19C899FDDF1A2FF /* RecentFilesMenuTemplate.nib in Resources */ = {isa = PBXBuildFile; fileRef = 6FC6928C1E798507B5702338 /* RecentFilesMenuTemplate.nib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0050B1C17FE29F9C95B64D51 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 099DCE12326CD7799FAE16B8 /* HelloWorldDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HelloWorldDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 2074B52EC43544A699F6A157 /* include_juce_core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_core.mm; path = ../../JuceLibraryCode/include_juce_core.mm; sourceTree = SOURCE_ROOT; }; + 348AF3F1494791F99F14FB59 /* juce_data_structures */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_data_structures; path = "~/JUCE/modules/juce_data_structures"; sourceTree = ""; }; + 39A38CBA134161AD8FA64899 /* include_juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_data_structures.mm; path = ../../JuceLibraryCode/include_juce_data_structures.mm; sourceTree = SOURCE_ROOT; }; + 4379C7B6AFDC3C5B757D5764 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 5239859E7529454F519F922D /* JuceHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = SOURCE_ROOT; }; + 53A65963E302C9DE500EA512 /* HelloWorldDemo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HelloWorldDemo.h; path = ../../Source/HelloWorldDemo.h; sourceTree = SOURCE_ROOT; }; + 5E7B98148BAD54B9201CF2C7 /* juce_core */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_core; path = "~/JUCE/modules/juce_core"; sourceTree = ""; }; + 6FC6928C1E798507B5702338 /* RecentFilesMenuTemplate.nib */ = {isa = PBXFileReference; lastKnownFileType = file.nib; path = RecentFilesMenuTemplate.nib; sourceTree = SOURCE_ROOT; }; + 800D138984C3A1FF22A52A42 /* juce_gui_basics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_gui_basics; path = "~/JUCE/modules/juce_gui_basics"; sourceTree = ""; }; + 8A4DDBE52A850BFC0032C112 /* libusb-1.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libusb-1.0.a"; path = "../../../../../../../opt/local/lib/libusb-1.0.a"; sourceTree = ""; }; + 8A4DDBE62A850D190032C112 /* libch341eeprom.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libch341eeprom.a; path = ../../../../heck_fvflash/src/libch341eeprom.a; sourceTree = ""; }; + 957408F71F4B186C7A55CAA4 /* juce_events */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_events; path = "~/JUCE/modules/juce_events"; sourceTree = ""; }; + 9AEC65989DCBE30E6C8DA7CB /* include_juce_gui_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_gui_basics.mm; path = ../../JuceLibraryCode/include_juce_gui_basics.mm; sourceTree = SOURCE_ROOT; }; + A95C42174C07FAA2B2B65C4C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + AD1C4EBB965C7DB7A55C0DA2 /* Info-App.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-App.plist"; sourceTree = SOURCE_ROOT; }; + C8B4DE0955A4E36F3F559F40 /* include_juce_events.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_events.mm; path = ../../JuceLibraryCode/include_juce_events.mm; sourceTree = SOURCE_ROOT; }; + C93186D0B1869EF73963988F /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = "~/JUCE/modules/juce_graphics"; sourceTree = ""; }; + E1F338292664601BF133048D /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + E7DABA4EA84ACAB407A52BAE /* Main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = SOURCE_ROOT; }; + EB807D4F84D10CC55ED63A76 /* include_juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_graphics.mm; path = ../../JuceLibraryCode/include_juce_graphics.mm; sourceTree = SOURCE_ROOT; }; + FD1AE6443A798B33984E52C9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D26239AED53B46CA2CE751E0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 50FE42A5C0417BF97C544A26 /* Cocoa.framework in Frameworks */, + 8A4DDBE72A850D4F0032C112 /* libch341eeprom.a in Frameworks */, + 58F81FF61B2E3330A4DC84D5 /* Foundation.framework in Frameworks */, + 5B5A2F3BA0ADA4C6C0FCB89A /* IOKit.framework in Frameworks */, + 8A4DDBE82A850D660032C112 /* libusb-1.0.a in Frameworks */, + F7500DD6050381FC1C00196C /* QuartzCore.framework in Frameworks */, + 5C4FFCDF8D6FDF200EC517F5 /* Security.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 18C51DEDCFFA23EC5A5B67CE /* Source */ = { + isa = PBXGroup; + children = ( + F1855BEAE974CAE58E8FD422 /* HelloWorldDemo */, + B7B926D77229D7E02EF99308 /* JUCE Modules */, + E5B60DEDED7A739A3E736B5D /* JUCE Library Code */, + 66B714D838BF3B4DB137F8CB /* Resources */, + F0AEE2DC91681642918BB3F7 /* Frameworks */, + 3907AEDA69EC2D3033063FB3 /* Products */, + ); + name = Source; + sourceTree = ""; + }; + 3907AEDA69EC2D3033063FB3 /* Products */ = { + isa = PBXGroup; + children = ( + 099DCE12326CD7799FAE16B8 /* HelloWorldDemo.app */, + ); + name = Products; + sourceTree = ""; + }; + 66B714D838BF3B4DB137F8CB /* Resources */ = { + isa = PBXGroup; + children = ( + AD1C4EBB965C7DB7A55C0DA2 /* Info-App.plist */, + 6FC6928C1E798507B5702338 /* RecentFilesMenuTemplate.nib */, + ); + name = Resources; + sourceTree = ""; + }; + B7B926D77229D7E02EF99308 /* JUCE Modules */ = { + isa = PBXGroup; + children = ( + 5E7B98148BAD54B9201CF2C7 /* juce_core */, + 348AF3F1494791F99F14FB59 /* juce_data_structures */, + 957408F71F4B186C7A55CAA4 /* juce_events */, + C93186D0B1869EF73963988F /* juce_graphics */, + 800D138984C3A1FF22A52A42 /* juce_gui_basics */, + ); + name = "JUCE Modules"; + sourceTree = ""; + }; + E5B60DEDED7A739A3E736B5D /* JUCE Library Code */ = { + isa = PBXGroup; + children = ( + 2074B52EC43544A699F6A157 /* include_juce_core.mm */, + 39A38CBA134161AD8FA64899 /* include_juce_data_structures.mm */, + C8B4DE0955A4E36F3F559F40 /* include_juce_events.mm */, + EB807D4F84D10CC55ED63A76 /* include_juce_graphics.mm */, + 9AEC65989DCBE30E6C8DA7CB /* include_juce_gui_basics.mm */, + 5239859E7529454F519F922D /* JuceHeader.h */, + ); + name = "JUCE Library Code"; + sourceTree = ""; + }; + F0AEE2DC91681642918BB3F7 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 8A4DDBE62A850D190032C112 /* libch341eeprom.a */, + 8A4DDBE52A850BFC0032C112 /* libusb-1.0.a */, + E1F338292664601BF133048D /* Cocoa.framework */, + FD1AE6443A798B33984E52C9 /* Foundation.framework */, + 4379C7B6AFDC3C5B757D5764 /* IOKit.framework */, + 0050B1C17FE29F9C95B64D51 /* QuartzCore.framework */, + A95C42174C07FAA2B2B65C4C /* Security.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + F1855BEAE974CAE58E8FD422 /* HelloWorldDemo */ = { + isa = PBXGroup; + children = ( + F7F77292F735014ADCFBAEEF /* Source */, + ); + name = HelloWorldDemo; + sourceTree = ""; + }; + F7F77292F735014ADCFBAEEF /* Source */ = { + isa = PBXGroup; + children = ( + E7DABA4EA84ACAB407A52BAE /* Main.cpp */, + 53A65963E302C9DE500EA512 /* HelloWorldDemo.h */, + ); + name = Source; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E59C5F4C7E26F9BDDBE2018E /* HelloWorldDemo - App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 40E862D067345E80CB5DDCA0 /* Build configuration list for PBXNativeTarget "HelloWorldDemo - App" */; + buildPhases = ( + 79B6891647E745A8589693B3 /* Resources */, + B173C572EFD1F97DE4F485A9 /* Sources */, + D26239AED53B46CA2CE751E0 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "HelloWorldDemo - App"; + productName = HelloWorldDemo; + productReference = 099DCE12326CD7799FAE16B8 /* HelloWorldDemo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D045F6BCDFCEC11D554F8C54 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1340; + ORGANIZATIONNAME = JUCE; + TargetAttributes = { + E59C5F4C7E26F9BDDBE2018E = { + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 0; + }; + com.apple.HardenedRuntime = { + enabled = 0; + }; + com.apple.InAppPurchase = { + enabled = 0; + }; + com.apple.InterAppAudio = { + enabled = 0; + }; + com.apple.Push = { + enabled = 0; + }; + com.apple.Sandbox = { + enabled = 0; + }; + }; + }; + }; + }; + buildConfigurationList = 76B10EB67960F008165A1B9F /* Build configuration list for PBXProject "HelloWorldDemo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 18C51DEDCFFA23EC5A5B67CE /* Source */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E59C5F4C7E26F9BDDBE2018E /* HelloWorldDemo - App */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 79B6891647E745A8589693B3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FB5FD2A4E19C899FDDF1A2FF /* RecentFilesMenuTemplate.nib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + B173C572EFD1F97DE4F485A9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A237F9B254E95B3173479FF5 /* Main.cpp in Sources */, + 0F0A60C569C0339E6F93D0DE /* include_juce_core.mm in Sources */, + 0699CAC43FF40F8C8353B6F3 /* include_juce_data_structures.mm in Sources */, + 183F99579A53365BD379126E /* include_juce_events.mm in Sources */, + 33FDCBC88B2CC866A748B87C /* include_juce_graphics.mm in Sources */, + 1AAA3EF567822A8FB9573C33 /* include_juce_gui_basics.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 2C242917C84054F84F935C4F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = NO; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = HelloWorldDemo; + SDKROOT = macosx; + WARNING_CFLAGS = "-Wreorder"; + ZERO_LINK = NO; + }; + name = Debug; + }; + 9FA88EC66C894C6E5BCE5B17 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + EXCLUDED_ARCHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCE_DISPLAY_SPLASH_SCREEN=1", + "JUCE_USE_DARK_SPLASH_SCREEN=1", + "JUCE_PROJUCER_VERSION=0x70006", + "JUCE_MODULE_AVAILABLE_juce_core=1", + "JUCE_MODULE_AVAILABLE_juce_data_structures=1", + "JUCE_MODULE_AVAILABLE_juce_events=1", + "JUCE_MODULE_AVAILABLE_juce_graphics=1", + "JUCE_MODULE_AVAILABLE_juce_gui_basics=1", + "JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1", + "JUCE_STRICT_REFCOUNTEDPOINTER=1", + "JUCE_STANDALONE_APPLICATION=1", + "PIP_JUCE_EXAMPLES_DIRECTORY=L1VzZXJzL2hlY2svSlVDRS9leGFtcGxlcw==", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", + "JucePlugin_Build_Unity=0", + "JucePlugin_Build_LV2=0", + ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + "$(SRCROOT)/../../JuceLibraryCode", + "$(HOME)/JUCE/modules", + "$(inherited)", + /Users/heck/src/heck_fvflash/src, + ); + INFOPLIST_FILE = "Info-App.plist"; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + /Users/heck/src/heck_fvflash/src, + /opt/local/lib, + ); + MACOSX_DEPLOYMENT_TARGET = 10.13; + MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(HOME)/JUCE/modules"; + OTHER_LDFLAGS = ( + "-weak_framework", + Metal, + "-weak_framework", + MetalKit, + ); + PRODUCT_BUNDLE_IDENTIFIER = com.JUCE.HelloWorldDemo; + PRODUCT_NAME = HelloWorldDemo; + USE_HEADERMAP = NO; + VALID_ARCHS = "i386 x86_64 arm64 arm64e"; + }; + name = Debug; + }; + AF8DAF58053535EC8337DC36 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + EXCLUDED_ARCHS = ""; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCE_DISPLAY_SPLASH_SCREEN=1", + "JUCE_USE_DARK_SPLASH_SCREEN=1", + "JUCE_PROJUCER_VERSION=0x70006", + "JUCE_MODULE_AVAILABLE_juce_core=1", + "JUCE_MODULE_AVAILABLE_juce_data_structures=1", + "JUCE_MODULE_AVAILABLE_juce_events=1", + "JUCE_MODULE_AVAILABLE_juce_graphics=1", + "JUCE_MODULE_AVAILABLE_juce_gui_basics=1", + "JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1", + "JUCE_STRICT_REFCOUNTEDPOINTER=1", + "JUCE_STANDALONE_APPLICATION=1", + "PIP_JUCE_EXAMPLES_DIRECTORY=L1VzZXJzL2hlY2svSlVDRS9leGFtcGxlcw==", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", + "JucePlugin_Build_VST=0", + "JucePlugin_Build_VST3=0", + "JucePlugin_Build_AU=0", + "JucePlugin_Build_AUv3=0", + "JucePlugin_Build_AAX=0", + "JucePlugin_Build_Standalone=0", + "JucePlugin_Build_Unity=0", + "JucePlugin_Build_LV2=0", + ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + "$(SRCROOT)/../../JuceLibraryCode", + "$(HOME)/JUCE/modules", + "$(inherited)", + /Users/heck/src/heck_fvflash/src, + ); + INFOPLIST_FILE = "Info-App.plist"; + INFOPLIST_PREPROCESS = NO; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + /Users/heck/src/heck_fvflash/src, + /opt/local/lib, + ); + LLVM_LTO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + MTL_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../JuceLibraryCode $(HOME)/JUCE/modules"; + OTHER_LDFLAGS = ( + "-weak_framework", + Metal, + "-weak_framework", + MetalKit, + ); + PRODUCT_BUNDLE_IDENTIFIER = com.JUCE.HelloWorldDemo; + PRODUCT_NAME = HelloWorldDemo; + USE_HEADERMAP = NO; + VALID_ARCHS = "i386 x86_64 arm64 arm64e"; + }; + name = Release; + }; + C89B59521DF6B8BC92EF1DCD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = NO; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_NO_COMMON_BLOCKS = YES; + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = HelloWorldDemo; + SDKROOT = macosx; + WARNING_CFLAGS = "-Wreorder"; + ZERO_LINK = NO; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 40E862D067345E80CB5DDCA0 /* Build configuration list for PBXNativeTarget "HelloWorldDemo - App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9FA88EC66C894C6E5BCE5B17 /* Debug */, + AF8DAF58053535EC8337DC36 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + 76B10EB67960F008165A1B9F /* Build configuration list for PBXProject "HelloWorldDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2C242917C84054F84F935C4F /* Debug */, + C89B59521DF6B8BC92EF1DCD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = D045F6BCDFCEC11D554F8C54 /* Project object */; +} diff --git a/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/xcuserdata/heck.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/HelloWorldDemo.xcodeproj/project.xcworkspace/xcuserdata/heck.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..872f6c640f15a675dd25813ac163390e12d8f591 GIT binary patch literal 24512 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 + + + + SchemeUserState + + HelloWorldDemo - App.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/Builds/MacOSX/Info-App.plist b/Builds/MacOSX/Info-App.plist new file mode 100644 index 0000000..f1ec728 --- /dev/null +++ b/Builds/MacOSX/Info-App.plist @@ -0,0 +1,29 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.JUCE.HelloWorldDemo + CFBundleName + HelloWorldDemo + CFBundleDisplayName + HelloWorldDemo + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + + NSHighResolutionCapable + + + diff --git a/Builds/MacOSX/RecentFilesMenuTemplate.nib b/Builds/MacOSX/RecentFilesMenuTemplate.nib new file mode 100644 index 0000000000000000000000000000000000000000..cec7f7c72bb7b287e0d493d53b0c487866ed6038 GIT binary patch literal 2842 zcmai03v3kE6}|7xy!Xa&z`M5b4;%lM&tmWg|D6Ew7aQ2M@%n>tur*!}uy{Yt&e%Yj z!V5{9M2(VAB|&M`7EBWqMJYm*Qk147ZPe1JqQtSlrHBH7I0T_IjZ#F@)_t?%Ee=It zN7~t$ckeyto_pVY+c)U<=|*AUI3U0vfeZvFDn(`M9m85!_l1J%9ihIhn%B^~9BSCR z#V203IgHR?JfM+%hit2XfdZM33l3Ne`LGO1p%PYu3*68FouI-XJOW|Z2HRl=JO&&d zhbQ3$coFu%%kV0U!U6axya8{)&*3Qi0*=GG@E)9mKfr1D5GLTya1k!SWw;8Tz^8Bv z#i9%}4`re(l#OywE^?sxXaQP?79l5EjPlSDRDhPXJAy-g|6d>m?t@skA7;U9hyxqg zAs!MS5#~S=Btr_MLK@74bjW~=UYpJB>G0{kKEKxK3-*V$=^NdiW-IkI+77+L?P(2# zjEBWbU%%d=`iC^V!{PO-y1v1BXIcrL+E6ek^b*qPy|%dj#jrejZK-Zgwb!fZ0?Ft1 z89S!ULt$Z^e8-xJWJdjeuiG3r;V~TZa^A$tIOC;!6>sE?VWu%!dWA5EgB)G6@Q+_0~^K?-8y;x)BOkDvSy{=lWhr{ZQ15gGP z;OrD+%}2|n3LfAkKZ6HhIjn${@DNl(4b(y%)I$TTf<|cK_woDrQXa<_@>HJA=kaWw z%k#LC7w~0KMb-)xV!x@vI5dlFT3{Wtf(P25U5Mt=fYA2|)`3%3tXY&QT zh|lV(cB#IgX%)?M5LB%O3Eae3g&<9@V7f2dxg3SVLi^yav z41ga35QI>#&F=Pya@RjH7ukjfz9|JYZG%QTR?|*H}#w^&f>t!FfCQP8jBMcrs6j zn3_={EIo#5XjYir@PtUpTru??h27vh2TuvHM(&X7X(3q6Hza#rv}1K-s|kTTLwx}e zgwGX~pUzw)oz~Xi^J_i2wP+bveH1D9I{3aQ_wzhMR5UGG#l2kF54C*W-6{M)P^c3m zZdYwT&k|jhZYeGBGP|1xwP04O=GB769k93i>@@*=5ccyN0X?5*M#0}S!RvYM-CCt? z2Ivt187Zv*bZn^gYic;l6tLHp)N5AK#I6f@hlC!6ZZ23#AA?^`_tPjG1LxgPW;W!B z88R+vtMB(2XYZ)UOzYpzuwLBJ5DEuW<6a1Vn&Gpgt;45nyO+n=86No^)}a12R)3vg zU)a{D`3Jj&LNm9nIVG=%nNTdYQ$r|dxYVH7W?@UQ3YZ)<2a#2vD)`JCKuO|SK7B<; zkoBA-1~C?h))gH=))S7#_?nj-vc-uQ-!{nby+&CcRH0dsNN6^SLpEeb@hAZ$qB$rD zC8HFSiqggI%~8 zx8N?k2?wx_AHzHGF8mDMi+_w?$A|D?d*2`4pWg6Sed~ARjY?$q3ud*Mq zAF-dX{p<~N5j6 literal 0 HcmV?d00001 diff --git a/HelloWorldDemo.jucer b/HelloWorldDemo.jucer new file mode 100644 index 0000000..38a6a21 --- /dev/null +++ b/HelloWorldDemo.jucer @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/JuceLibraryCode/JuceHeader.h b/JuceLibraryCode/JuceHeader.h new file mode 100644 index 0000000..e87e99f --- /dev/null +++ b/JuceLibraryCode/JuceHeader.h @@ -0,0 +1,46 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + This is the header file that your files should include in order to get all the + JUCE library headers. You should avoid including the JUCE headers directly in + your own source files, because that wouldn't pick up the correct configuration + options for your app. + +*/ + +#pragma once + + +#include +#include +#include +#include +#include + + +#if defined (JUCE_PROJUCER_VERSION) && JUCE_PROJUCER_VERSION < JUCE_VERSION + /** If you've hit this error then the version of the Projucer that was used to generate this project is + older than the version of the JUCE modules being included. To fix this error, re-save your project + using the latest version of the Projucer or, if you aren't using the Projucer to manage your project, + remove the JUCE_PROJUCER_VERSION define. + */ + #error "This project was last saved using an outdated version of the Projucer! Re-save this project with the latest version to fix this error." +#endif + +#if ! DONT_SET_USING_JUCE_NAMESPACE + // If your code uses a lot of JUCE classes, then this will obviously save you + // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. + using namespace juce; +#endif + +#if ! JUCE_DONT_DECLARE_PROJECTINFO +namespace ProjectInfo +{ + const char* const projectName = "HelloWorldDemo"; + const char* const companyName = "JUCE"; + const char* const versionString = "1.0.0"; + const int versionNumber = 0x10000; +} +#endif diff --git a/JuceLibraryCode/ReadMe.txt b/JuceLibraryCode/ReadMe.txt new file mode 100644 index 0000000..091a5aa --- /dev/null +++ b/JuceLibraryCode/ReadMe.txt @@ -0,0 +1,12 @@ + + Important Note!! + ================ + +The purpose of this folder is to contain files that are auto-generated by the Projucer, +and ALL files in this folder will be mercilessly DELETED and completely re-written whenever +the Projucer saves your project. + +Therefore, it's a bad idea to make any manual changes to the files in here, or to +put any of your own files in here if you don't want to lose them. (Of course you may choose +to add the folder's contents to your version-control system so that you can re-merge your own +modifications after the Projucer has saved its changes). diff --git a/JuceLibraryCode/include_juce_core.cpp b/JuceLibraryCode/include_juce_core.cpp new file mode 100644 index 0000000..84fe988 --- /dev/null +++ b/JuceLibraryCode/include_juce_core.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_core.mm b/JuceLibraryCode/include_juce_core.mm new file mode 100644 index 0000000..9ee67bf --- /dev/null +++ b/JuceLibraryCode/include_juce_core.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_data_structures.cpp b/JuceLibraryCode/include_juce_data_structures.cpp new file mode 100644 index 0000000..152980a --- /dev/null +++ b/JuceLibraryCode/include_juce_data_structures.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_data_structures.mm b/JuceLibraryCode/include_juce_data_structures.mm new file mode 100644 index 0000000..02b9711 --- /dev/null +++ b/JuceLibraryCode/include_juce_data_structures.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_events.cpp b/JuceLibraryCode/include_juce_events.cpp new file mode 100644 index 0000000..39268e2 --- /dev/null +++ b/JuceLibraryCode/include_juce_events.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_events.mm b/JuceLibraryCode/include_juce_events.mm new file mode 100644 index 0000000..191a998 --- /dev/null +++ b/JuceLibraryCode/include_juce_events.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_graphics.cpp b/JuceLibraryCode/include_juce_graphics.cpp new file mode 100644 index 0000000..8ccabef --- /dev/null +++ b/JuceLibraryCode/include_juce_graphics.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_graphics.mm b/JuceLibraryCode/include_juce_graphics.mm new file mode 100644 index 0000000..6bb7456 --- /dev/null +++ b/JuceLibraryCode/include_juce_graphics.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_gui_basics.cpp b/JuceLibraryCode/include_juce_gui_basics.cpp new file mode 100644 index 0000000..71d04b2 --- /dev/null +++ b/JuceLibraryCode/include_juce_gui_basics.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/JuceLibraryCode/include_juce_gui_basics.mm b/JuceLibraryCode/include_juce_gui_basics.mm new file mode 100644 index 0000000..e449e0b --- /dev/null +++ b/JuceLibraryCode/include_juce_gui_basics.mm @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/Source/HelloWorldDemo.h b/Source/HelloWorldDemo.h new file mode 100644 index 0000000..2499e2c --- /dev/null +++ b/Source/HelloWorldDemo.h @@ -0,0 +1,168 @@ +/* + ============================================================================== + + This file is part of the JUCE examples. + Copyright (c) 2022 - Raw Material Software Limited + + The code included in this file is provided under the terms of the ISC license + http://www.isc.org/downloads/software-support-policy/isc-license. Permission + To use, copy, modify, and/or distribute this software for any purpose with or + without fee is hereby granted provided that the above copyright notice and + this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, + WHETHER EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR + PURPOSE, ARE DISCLAIMED. + + ============================================================================== +*/ + +/******************************************************************************* + The block below describes the properties of this PIP. A PIP is a short snippet + of code that can be read by the Projucer and used to generate a JUCE project. + + BEGIN_JUCE_PIP_METADATA + + name: HelloWorldDemo + version: 1.0.0 + vendor: JUCE + website: http://juce.com + description: Simple HelloWorld application. + + dependencies: juce_core, juce_data_structures, juce_events, juce_graphics, + juce_gui_basics + exporters: xcode_mac, vs2022, linux_make, xcode_iphone + + moduleFlags: JUCE_STRICT_REFCOUNTEDPOINTER=1 + + type: Component + mainClass: HelloWorldDemo + + useLocalCopy: 1 + + END_JUCE_PIP_METADATA + +*******************************************************************************/ + +#pragma once + +#include + +//============================================================================== +class HelloWorldDemo : public Component, public juce::FilenameComponentListener +{ +public: + int fv1flash_write(std::string &filename) { + ch341_operation_desc opdesc{}; + opdesc.operation = 'w'; + opdesc.filename = strdup(filename.data()); + opdesc.eepromname = strdup("24c32"); + + return ch341_operation(opdesc); + } + + int fv1flash_erase() { + ch341_operation_desc opdesc{}; + opdesc.operation = 'e'; + opdesc.eepromname = strdup("24c32"); + + return ch341_operation(opdesc); + } + + + //============================================================================== + HelloWorldDemo() + { + fileComp.reset (new juce::FilenameComponent ("fileComp", + {}, // current file + false, // can edit file name, + false, // is directory, + false, // is for saving, + {}, // browser wildcard suffix, + {}, // enforced suffix, + "Drop fv-1 program \n\nHere\n\nto upload (bin file)")); // text when nothing selected + addAndMakeVisible (fileComp.get()); + fileComp->addListener (this); + + addAndMakeVisible (helloWorldLabel); + + helloWorldLabel.setFont (Font (40.00f, Font::bold)); + helloWorldLabel.setJustificationType (Justification::centred); + helloWorldLabel.setEditable (false, false, false); + helloWorldLabel.setColour (Label::textColourId, Colours::green); + + addAndMakeVisible (status_label); + + status_label.setFont (Font (20.00f, Font::plain)); + status_label.setJustificationType (Justification::left); + status_label.setEditable (false, false, false); + status_label.setColour (Label::textColourId, Colours::white); + + addAndMakeVisible (helloWorldLabel2); + + helloWorldLabel2.setFont (Font (12.00f, Font::plain)); + helloWorldLabel2.setJustificationType (Justification::right); + helloWorldLabel2.setEditable (false, false, false); + helloWorldLabel2.setColour (Label::textColourId, Colours::white); + + + addAndMakeVisible (quitButton); + quitButton.onClick = [this]{ + if (fv1flash_erase() == 0) { + status_label.setColour (Label::textColourId, Colours::green); + status_label.setText("Erase Successful", juce::NotificationType::dontSendNotification); + } else { + status_label.setColour (Label::textColourId, Colours::red); + status_label.setText("Erase Error: fv-1 board not found)", juce::NotificationType::dontSendNotification); + } + }; + + setSize (500, 400); + } + + //============================================================================== + void paint (Graphics& g) override + { + g.fillAll (Colour (0,0,0)); + + } + + void resized() override + { + helloWorldLabel.setBounds (10, 10, getWidth()- 10, 60); + fileComp->setBounds(30, 100, getWidth() - 60, 200); + status_label.setBounds(25, 290, getWidth()- 10, 60); + helloWorldLabel2.setBounds(10, 360, 380, 30); + quitButton.setBounds (350, 307, 120, 32); + + } + + void filenameComponentChanged (juce::FilenameComponent* fileComponentThatHasChanged) override + { + if (fileComponentThatHasChanged == fileComp.get()) { + std::string filename = fileComp->getCurrentFile().getFullPathName().toStdString(); + status_label.setText("Uploading...", juce::NotificationType::dontSendNotification); + if (fv1flash_write(filename) == 0) { + status_label.setColour (Label::textColourId, Colours::green); + status_label.setText("Upload Successful", juce::NotificationType::dontSendNotification); + } else { + status_label.setColour (Label::textColourId, Colours::red); + status_label.setText("Upload Error: fv-1 board not found)", juce::NotificationType::dontSendNotification); + } + } + } + + + +private: + //============================================================================== + std::unique_ptr fileComp; + Label helloWorldLabel { {}, TRANS("FlipFloater FV-1 Fun") }; + Label helloWorldLabel2 { {}, TRANS("made by @ homemade23 4 FlipFloater") }; + Label status_label { {}, TRANS("") }; + TextButton quitButton { TRANS("Erase") }; + + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (HelloWorldDemo) +}; diff --git a/Source/Main.cpp b/Source/Main.cpp new file mode 100644 index 0000000..bea5ef2 --- /dev/null +++ b/Source/Main.cpp @@ -0,0 +1,63 @@ +/* + ============================================================================== + + This file contains the startup code for a PIP. + + ============================================================================== +*/ + +#include +#include "HelloWorldDemo.h" + +class Application : public juce::JUCEApplication +{ +public: + //============================================================================== + Application() = default; + + const juce::String getApplicationName() override { return "HelloWorldDemo"; } + const juce::String getApplicationVersion() override { return "1.0.0"; } + + void initialise (const juce::String&) override + { + mainWindow.reset (new MainWindow ("HelloWorldDemo", new HelloWorldDemo, *this)); + } + + void shutdown() override { mainWindow = nullptr; } + +private: + class MainWindow : public juce::DocumentWindow + { + public: + MainWindow (const juce::String& name, juce::Component* c, JUCEApplication& a) + : DocumentWindow (name, juce::Desktop::getInstance().getDefaultLookAndFeel() + .findColour (ResizableWindow::backgroundColourId), + juce::DocumentWindow::allButtons), + app (a) + { + setUsingNativeTitleBar (true); + setContentOwned (c, true); + + setResizable (false, false); + centreWithSize (getWidth(), getHeight()); + + setVisible (true); + } + + void closeButtonPressed() override + { + app.systemRequestedQuit(); + } + + private: + JUCEApplication& app; + + //============================================================================== + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow) + }; + + std::unique_ptr mainWindow; +}; + +//============================================================================== +START_JUCE_APPLICATION (Application)