├── .gitignore ├── Builds └── MacOSX │ ├── build │ └── Debug │ │ └── simpleAudioPlayer.app │ │ └── Contents │ │ ├── PkgInfo │ │ ├── MacOS │ │ └── simpleAudioPlayer │ │ ├── Resources │ │ └── RecentFilesMenuTemplate.nib │ │ └── Info.plist │ ├── RecentFilesMenuTemplate.nib │ ├── simpleAudioPlayer.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── djatwar.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── xcuserdata │ │ └── djatwar.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── xcschememanagement.plist │ │ │ └── simpleAudioPlayer - App.xcscheme │ └── project.pbxproj │ └── Info-App.plist ├── JuceLibraryCode ├── include_juce_core.mm ├── include_juce_core.cpp ├── include_juce_video.cpp ├── include_juce_video.mm ├── include_juce_events.cpp ├── include_juce_events.mm ├── include_juce_opengl.cpp ├── include_juce_opengl.mm ├── include_juce_graphics.cpp ├── include_juce_graphics.mm ├── include_juce_gui_extra.mm ├── include_juce_gui_basics.cpp ├── include_juce_gui_basics.mm ├── include_juce_gui_extra.cpp ├── include_juce_audio_basics.mm ├── include_juce_audio_utils.cpp ├── include_juce_audio_utils.mm ├── include_juce_cryptography.mm ├── include_juce_audio_basics.cpp ├── include_juce_audio_devices.cpp ├── include_juce_audio_devices.mm ├── include_juce_audio_formats.cpp ├── include_juce_audio_formats.mm ├── include_juce_cryptography.cpp ├── include_juce_data_structures.cpp ├── include_juce_data_structures.mm ├── include_juce_audio_processors.cpp ├── include_juce_audio_processors.mm ├── ReadMe.txt ├── JuceHeader.h └── AppConfig.h ├── Source ├── MainComponent.h ├── Main.cpp └── MainComponent.cpp └── simpleAudioPlayer.jucer /.gitignore: -------------------------------------------------------------------------------- 1 | /builds 2 | /JuceLibraryCode 3 | .ds_store 4 | -------------------------------------------------------------------------------- /Builds/MacOSX/build/Debug/simpleAudioPlayer.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /Builds/MacOSX/RecentFilesMenuTemplate.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheAudioProgrammer/simpleAudioPlayerJUCE/HEAD/Builds/MacOSX/RecentFilesMenuTemplate.nib -------------------------------------------------------------------------------- /Builds/MacOSX/build/Debug/simpleAudioPlayer.app/Contents/MacOS/simpleAudioPlayer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheAudioProgrammer/simpleAudioPlayerJUCE/HEAD/Builds/MacOSX/build/Debug/simpleAudioPlayer.app/Contents/MacOS/simpleAudioPlayer -------------------------------------------------------------------------------- /Builds/MacOSX/simpleAudioPlayer.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Builds/MacOSX/build/Debug/simpleAudioPlayer.app/Contents/Resources/RecentFilesMenuTemplate.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheAudioProgrammer/simpleAudioPlayerJUCE/HEAD/Builds/MacOSX/build/Debug/simpleAudioPlayer.app/Contents/Resources/RecentFilesMenuTemplate.nib -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_core.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_core.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_video.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_video.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_events.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_events.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_opengl.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_opengl.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_graphics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_graphics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_extra.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_extra.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /Builds/MacOSX/simpleAudioPlayer.xcodeproj/project.xcworkspace/xcuserdata/djatwar.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TheAudioProgrammer/simpleAudioPlayerJUCE/HEAD/Builds/MacOSX/simpleAudioPlayer.xcodeproj/project.xcworkspace/xcuserdata/djatwar.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_cryptography.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_devices.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_devices.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_formats.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_formats.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_cryptography.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_data_structures.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_data_structures.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/ReadMe.txt: -------------------------------------------------------------------------------- 1 | 2 | Important Note!! 3 | ================ 4 | 5 | The purpose of this folder is to contain files that are auto-generated by the Projucer, 6 | and ALL files in this folder will be mercilessly DELETED and completely re-written whenever 7 | the Projucer saves your project. 8 | 9 | Therefore, it's a bad idea to make any manual changes to the files in here, or to 10 | put any of your own files in here if you don't want to lose them. (Of course you may choose 11 | to add the folder's contents to your version-control system so that you can re-merge your own 12 | modifications after the Projucer has saved its changes). 13 | -------------------------------------------------------------------------------- /Builds/MacOSX/simpleAudioPlayer.xcodeproj/xcuserdata/djatwar.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | simpleAudioPlayer - App.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 92A93D2A024EAB1E8ABD8000 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Builds/MacOSX/Info-App.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CFBundleExecutable 7 | ${EXECUTABLE_NAME} 8 | CFBundleIconFile 9 | 10 | CFBundleIdentifier 11 | com.yourcompany.simpleAudioPlayer 12 | CFBundleName 13 | simpleAudioPlayer 14 | CFBundleDisplayName 15 | simpleAudioPlayer 16 | CFBundlePackageType 17 | APPL 18 | CFBundleSignature 19 | ???? 20 | CFBundleShortVersionString 21 | 1.0.0 22 | CFBundleVersion 23 | 1.0.0 24 | NSHumanReadableCopyright 25 | 26 | NSHighResolutionCapable 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Builds/MacOSX/build/Debug/simpleAudioPlayer.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 16G1314 7 | CFBundleDisplayName 8 | simpleAudioPlayer 9 | CFBundleExecutable 10 | simpleAudioPlayer 11 | CFBundleIdentifier 12 | com.yourcompany.simpleAudioPlayer 13 | CFBundleName 14 | simpleAudioPlayer 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleSupportedPlatforms 22 | 23 | MacOSX 24 | 25 | CFBundleVersion 26 | 1.0.0 27 | DTCompiler 28 | com.apple.compilers.llvm.clang.1_0 29 | DTPlatformBuild 30 | 8C1002 31 | DTPlatformVersion 32 | GM 33 | DTSDKBuild 34 | 16C58 35 | DTSDKName 36 | macosx10.12 37 | DTXcode 38 | 0821 39 | DTXcodeBuild 40 | 8C1002 41 | NSHighResolutionCapable 42 | 43 | NSHumanReadableCopyright 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /JuceLibraryCode/JuceHeader.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | This is the header file that your files should include in order to get all the 7 | JUCE library headers. You should avoid including the JUCE headers directly in 8 | your own source files, because that wouldn't pick up the correct configuration 9 | options for your app. 10 | 11 | */ 12 | 13 | #pragma once 14 | 15 | #include "AppConfig.h" 16 | 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | 32 | 33 | #if ! DONT_SET_USING_JUCE_NAMESPACE 34 | // If your code uses a lot of JUCE classes, then this will obviously save you 35 | // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. 36 | using namespace juce; 37 | #endif 38 | 39 | #if ! JUCE_DONT_DECLARE_PROJECTINFO 40 | namespace ProjectInfo 41 | { 42 | const char* const projectName = "simpleAudioPlayer"; 43 | const char* const versionString = "1.0.0"; 44 | const int versionNumber = 0x10000; 45 | } 46 | #endif 47 | -------------------------------------------------------------------------------- /Source/MainComponent.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file was auto-generated! 5 | 6 | ============================================================================== 7 | */ 8 | 9 | #pragma once 10 | 11 | #include "../JuceLibraryCode/JuceHeader.h" 12 | 13 | //============================================================================== 14 | /* 15 | This component lives inside our window, and this is where you should put all 16 | your controls and content. 17 | */ 18 | class MainComponent : public AudioAppComponent, 19 | public ChangeListener 20 | { 21 | public: 22 | //============================================================================== 23 | MainComponent(); 24 | ~MainComponent(); 25 | 26 | //============================================================================== 27 | void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override; 28 | void getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) override; 29 | void releaseResources() override; 30 | 31 | //============================================================================== 32 | void paint (Graphics& g) override; 33 | void resized() override; 34 | 35 | private: 36 | AudioDeviceManager otherDeviceManager; 37 | std::unique_ptr audioSettings; 38 | 39 | enum TransportState 40 | { 41 | Stopped, 42 | Starting, 43 | Stopping, 44 | Playing 45 | }; 46 | 47 | TransportState state; 48 | 49 | void openButtonClicked(); 50 | 51 | void playButtonClicked(); 52 | void stopButtonClicked(); 53 | void transportStateChanged(TransportState newState); 54 | void changeListenerCallback (ChangeBroadcaster *source) override; 55 | 56 | AudioFormatManager formatManager; 57 | std::unique_ptr playSource; 58 | AudioTransportSource transport; 59 | 60 | TextButton openButton; 61 | TextButton playButton; 62 | TextButton stopButton; 63 | 64 | //============================================================================== 65 | // Your private member variables go here... 66 | 67 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent) 68 | }; 69 | -------------------------------------------------------------------------------- /simpleAudioPlayer.jucer: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /Builds/MacOSX/simpleAudioPlayer.xcodeproj/xcuserdata/djatwar.xcuserdatad/xcschemes/simpleAudioPlayer - App.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /Source/Main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file was auto-generated! 5 | 6 | It contains the basic startup code for a JUCE application. 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "../JuceLibraryCode/JuceHeader.h" 12 | #include "MainComponent.h" 13 | 14 | //============================================================================== 15 | class simpleAudioPlayerApplication : public JUCEApplication 16 | { 17 | public: 18 | //============================================================================== 19 | simpleAudioPlayerApplication() {} 20 | 21 | const String getApplicationName() override { return ProjectInfo::projectName; } 22 | const String getApplicationVersion() override { return ProjectInfo::versionString; } 23 | bool moreThanOneInstanceAllowed() override { return true; } 24 | 25 | //============================================================================== 26 | void initialise (const String& commandLine) override 27 | { 28 | // This method is where you should put your application's initialisation code.. 29 | 30 | mainWindow.reset (new MainWindow (getApplicationName())); 31 | } 32 | 33 | void shutdown() override 34 | { 35 | // Add your application's shutdown code here.. 36 | 37 | mainWindow = nullptr; // (deletes our window) 38 | } 39 | 40 | //============================================================================== 41 | void systemRequestedQuit() override 42 | { 43 | // This is called when the app is being asked to quit: you can ignore this 44 | // request and let the app carry on running, or call quit() to allow the app to close. 45 | quit(); 46 | } 47 | 48 | void anotherInstanceStarted (const String& commandLine) override 49 | { 50 | // When another instance of the app is launched while this one is running, 51 | // this method is invoked, and the commandLine parameter tells you what 52 | // the other instance's command-line arguments were. 53 | } 54 | 55 | //============================================================================== 56 | /* 57 | This class implements the desktop window that contains an instance of 58 | our MainComponent class. 59 | */ 60 | class MainWindow : public DocumentWindow 61 | { 62 | public: 63 | MainWindow (String name) : DocumentWindow (name, 64 | Desktop::getInstance().getDefaultLookAndFeel() 65 | .findColour (ResizableWindow::backgroundColourId), 66 | DocumentWindow::allButtons) 67 | { 68 | setUsingNativeTitleBar (true); 69 | setContentOwned (new MainComponent(), true); 70 | setResizable (true, true); 71 | 72 | centreWithSize (getWidth(), getHeight()); 73 | setVisible (true); 74 | } 75 | 76 | void closeButtonPressed() override 77 | { 78 | // This is called when the user tries to close this window. Here, we'll just 79 | // ask the app to quit when this happens, but you can change this to do 80 | // whatever you need. 81 | JUCEApplication::getInstance()->systemRequestedQuit(); 82 | } 83 | 84 | /* Note: Be careful if you override any DocumentWindow methods - the base 85 | class uses a lot of them, so by overriding you might break its functionality. 86 | It's best to do all your work in your content component instead, but if 87 | you really have to override any DocumentWindow methods, make sure your 88 | subclass also calls the superclass's method. 89 | */ 90 | 91 | private: 92 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow) 93 | }; 94 | 95 | private: 96 | std::unique_ptr mainWindow; 97 | }; 98 | 99 | //============================================================================== 100 | // This macro generates the main() routine that launches the app. 101 | START_JUCE_APPLICATION (simpleAudioPlayerApplication) 102 | -------------------------------------------------------------------------------- /Source/MainComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | This file was auto-generated! 5 | 6 | ============================================================================== 7 | */ 8 | 9 | #include "MainComponent.h" 10 | 11 | 12 | //============================================================================== 13 | MainComponent::MainComponent() : juce::AudioAppComponent(otherDeviceManager), state(Stopped), openButton("Open"), playButton("Play"), stopButton("Stop") 14 | { 15 | otherDeviceManager.initialise(2, 2, nullptr, true); 16 | audioSettings.reset(new AudioDeviceSelectorComponent(otherDeviceManager, 0, 2, 0, 2, true, true, true, true)); 17 | addAndMakeVisible(audioSettings.get()); 18 | 19 | setAudioChannels (2, 2); 20 | 21 | openButton.onClick = [this] { openButtonClicked(); }; 22 | addAndMakeVisible(&openButton); 23 | 24 | playButton.onClick = [this] { playButtonClicked(); }; 25 | playButton.setColour(TextButton::buttonColourId, Colours::green); 26 | playButton.setEnabled(true); 27 | addAndMakeVisible(&playButton); 28 | 29 | stopButton.onClick = [this] { stopButtonClicked(); }; 30 | stopButton.setColour(TextButton::buttonColourId, Colours::red); 31 | stopButton.setEnabled(false); 32 | addAndMakeVisible(&stopButton); 33 | 34 | formatManager.registerBasicFormats(); 35 | transport.addChangeListener(this); 36 | 37 | setSize (400, 700); 38 | } 39 | 40 | MainComponent::~MainComponent() 41 | { 42 | // This shuts down the audio device and clears the audio source. 43 | shutdownAudio(); 44 | } 45 | 46 | //============================================================================== 47 | void MainComponent::prepareToPlay (int samplesPerBlockExpected, double sampleRate) 48 | { 49 | transport.prepareToPlay(samplesPerBlockExpected, sampleRate); 50 | } 51 | 52 | void MainComponent::openButtonClicked() 53 | { 54 | //choose a file 55 | FileChooser chooser ("Choose a Wav or AIFF File", File::getSpecialLocation(File::userDesktopDirectory), "*.wav; *.mp3"); 56 | 57 | //if the user chooses a file 58 | if (chooser.browseForFileToOpen()) 59 | { 60 | File myFile; 61 | 62 | //what did the user choose? 63 | myFile = chooser.getResult(); 64 | 65 | //read the file 66 | AudioFormatReader* reader = formatManager.createReaderFor(myFile); 67 | 68 | if (reader != nullptr) 69 | { 70 | //get the file ready to play 71 | std::unique_ptr tempSource (new AudioFormatReaderSource (reader, true)); 72 | 73 | transport.setSource(tempSource.get()); 74 | transportStateChanged(Stopped); 75 | 76 | playSource.reset(tempSource.release()); 77 | } 78 | } 79 | } 80 | 81 | void MainComponent::playButtonClicked() 82 | { 83 | transportStateChanged(Starting); 84 | } 85 | 86 | void MainComponent::stopButtonClicked() 87 | { 88 | transportStateChanged(Stopping); 89 | } 90 | 91 | void MainComponent::transportStateChanged(TransportState newState) 92 | { 93 | if (newState != state) 94 | { 95 | state = newState; 96 | 97 | switch (state) { 98 | case Stopped: 99 | playButton.setEnabled(true); 100 | transport.setPosition(0.0); 101 | break; 102 | 103 | case Playing: 104 | playButton.setEnabled(true); 105 | break; 106 | 107 | case Starting: 108 | stopButton.setEnabled(true); 109 | playButton.setEnabled(false); 110 | transport.start(); 111 | break; 112 | 113 | case Stopping: 114 | playButton.setEnabled(true); 115 | stopButton.setEnabled(false); 116 | transport.stop(); 117 | break; 118 | } 119 | } 120 | } 121 | 122 | void MainComponent::changeListenerCallback (ChangeBroadcaster *source) 123 | { 124 | if (source == &transport) 125 | { 126 | if (transport.isPlaying()) 127 | { 128 | transportStateChanged(Playing); 129 | } 130 | else 131 | { 132 | transportStateChanged(Stopped); 133 | } 134 | } 135 | } 136 | 137 | void MainComponent::getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill) 138 | { 139 | bufferToFill.clearActiveBufferRegion(); 140 | 141 | transport.getNextAudioBlock(bufferToFill); 142 | } 143 | 144 | void MainComponent::releaseResources() 145 | { 146 | // This will be called when the audio device stops, or when it is being 147 | // restarted due to a setting change. 148 | 149 | // For more details, see the help for AudioProcessor::releaseResources() 150 | } 151 | 152 | //============================================================================== 153 | void MainComponent::paint (Graphics& g) 154 | { 155 | // (Our component is opaque, so we must completely fill the background with a solid colour) 156 | g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId)); 157 | 158 | // You can add your drawing code here! 159 | } 160 | 161 | void MainComponent::resized() 162 | { 163 | openButton.setBounds(10, 10, getWidth() - 20, 30); 164 | playButton.setBounds(10, 50, getWidth() - 20, 30); 165 | stopButton.setBounds(10, 90, getWidth() - 20, 30); 166 | audioSettings->setBounds(10, 130, getWidth() - 20, 100); 167 | } 168 | -------------------------------------------------------------------------------- /JuceLibraryCode/AppConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | There's a section below where you can add your own custom code safely, and the 7 | Projucer will preserve the contents of that block, but the best way to change 8 | any of these definitions is by using the Projucer's project settings. 9 | 10 | Any commented-out settings will assume their default values. 11 | 12 | */ 13 | 14 | #pragma once 15 | 16 | //============================================================================== 17 | // [BEGIN_USER_CODE_SECTION] 18 | 19 | // (You can add your own code in this section, and the Projucer will not overwrite it) 20 | 21 | // [END_USER_CODE_SECTION] 22 | 23 | /* 24 | ============================================================================== 25 | 26 | In accordance with the terms of the JUCE 5 End-Use License Agreement, the 27 | JUCE Code in SECTION A cannot be removed, changed or otherwise rendered 28 | ineffective unless you have a JUCE Indie or Pro license, or are using JUCE 29 | under the GPL v3 license. 30 | 31 | End User License Agreement: www.juce.com/juce-5-licence 32 | 33 | ============================================================================== 34 | */ 35 | 36 | // BEGIN SECTION A 37 | 38 | #ifndef JUCE_DISPLAY_SPLASH_SCREEN 39 | #define JUCE_DISPLAY_SPLASH_SCREEN 1 40 | #endif 41 | 42 | #ifndef JUCE_REPORT_APP_USAGE 43 | #define JUCE_REPORT_APP_USAGE 1 44 | #endif 45 | 46 | // END SECTION A 47 | 48 | #define JUCE_USE_DARK_SPLASH_SCREEN 1 49 | 50 | //============================================================================== 51 | #define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 52 | #define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 53 | #define JUCE_MODULE_AVAILABLE_juce_audio_formats 1 54 | #define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 55 | #define JUCE_MODULE_AVAILABLE_juce_audio_utils 1 56 | #define JUCE_MODULE_AVAILABLE_juce_core 1 57 | #define JUCE_MODULE_AVAILABLE_juce_cryptography 1 58 | #define JUCE_MODULE_AVAILABLE_juce_data_structures 1 59 | #define JUCE_MODULE_AVAILABLE_juce_events 1 60 | #define JUCE_MODULE_AVAILABLE_juce_graphics 1 61 | #define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 62 | #define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 63 | #define JUCE_MODULE_AVAILABLE_juce_opengl 1 64 | #define JUCE_MODULE_AVAILABLE_juce_video 1 65 | 66 | #define JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED 1 67 | 68 | //============================================================================== 69 | // juce_audio_devices flags: 70 | 71 | #ifndef JUCE_ASIO 72 | //#define JUCE_ASIO 0 73 | #endif 74 | 75 | #ifndef JUCE_WASAPI 76 | //#define JUCE_WASAPI 1 77 | #endif 78 | 79 | #ifndef JUCE_WASAPI_EXCLUSIVE 80 | //#define JUCE_WASAPI_EXCLUSIVE 0 81 | #endif 82 | 83 | #ifndef JUCE_DIRECTSOUND 84 | //#define JUCE_DIRECTSOUND 1 85 | #endif 86 | 87 | #ifndef JUCE_ALSA 88 | //#define JUCE_ALSA 1 89 | #endif 90 | 91 | #ifndef JUCE_JACK 92 | //#define JUCE_JACK 0 93 | #endif 94 | 95 | #ifndef JUCE_BELA 96 | //#define JUCE_BELA 0 97 | #endif 98 | 99 | #ifndef JUCE_USE_ANDROID_OBOE 100 | //#define JUCE_USE_ANDROID_OBOE 0 101 | #endif 102 | 103 | #ifndef JUCE_USE_ANDROID_OPENSLES 104 | //#define JUCE_USE_ANDROID_OPENSLES 0 105 | #endif 106 | 107 | #ifndef JUCE_USE_WINRT_MIDI 108 | //#define JUCE_USE_WINRT_MIDI 0 109 | #endif 110 | 111 | #ifndef JUCE_DISABLE_AUDIO_MIXING_WITH_OTHER_APPS 112 | //#define JUCE_DISABLE_AUDIO_MIXING_WITH_OTHER_APPS 0 113 | #endif 114 | 115 | //============================================================================== 116 | // juce_audio_formats flags: 117 | 118 | #ifndef JUCE_USE_FLAC 119 | //#define JUCE_USE_FLAC 1 120 | #endif 121 | 122 | #ifndef JUCE_USE_OGGVORBIS 123 | //#define JUCE_USE_OGGVORBIS 1 124 | #endif 125 | 126 | #ifndef JUCE_USE_MP3AUDIOFORMAT 127 | #define JUCE_USE_MP3AUDIOFORMAT 1 128 | #endif 129 | 130 | #ifndef JUCE_USE_LAME_AUDIO_FORMAT 131 | //#define JUCE_USE_LAME_AUDIO_FORMAT 0 132 | #endif 133 | 134 | #ifndef JUCE_USE_WINDOWS_MEDIA_FORMAT 135 | //#define JUCE_USE_WINDOWS_MEDIA_FORMAT 1 136 | #endif 137 | 138 | //============================================================================== 139 | // juce_audio_processors flags: 140 | 141 | #ifndef JUCE_PLUGINHOST_VST 142 | //#define JUCE_PLUGINHOST_VST 0 143 | #endif 144 | 145 | #ifndef JUCE_PLUGINHOST_VST3 146 | //#define JUCE_PLUGINHOST_VST3 0 147 | #endif 148 | 149 | #ifndef JUCE_PLUGINHOST_AU 150 | //#define JUCE_PLUGINHOST_AU 0 151 | #endif 152 | 153 | #ifndef JUCE_PLUGINHOST_LADSPA 154 | //#define JUCE_PLUGINHOST_LADSPA 0 155 | #endif 156 | 157 | //============================================================================== 158 | // juce_audio_utils flags: 159 | 160 | #ifndef JUCE_USE_CDREADER 161 | //#define JUCE_USE_CDREADER 0 162 | #endif 163 | 164 | #ifndef JUCE_USE_CDBURNER 165 | //#define JUCE_USE_CDBURNER 0 166 | #endif 167 | 168 | //============================================================================== 169 | // juce_core flags: 170 | 171 | #ifndef JUCE_FORCE_DEBUG 172 | //#define JUCE_FORCE_DEBUG 0 173 | #endif 174 | 175 | #ifndef JUCE_LOG_ASSERTIONS 176 | //#define JUCE_LOG_ASSERTIONS 0 177 | #endif 178 | 179 | #ifndef JUCE_CHECK_MEMORY_LEAKS 180 | //#define JUCE_CHECK_MEMORY_LEAKS 1 181 | #endif 182 | 183 | #ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 184 | //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES 0 185 | #endif 186 | 187 | #ifndef JUCE_INCLUDE_ZLIB_CODE 188 | //#define JUCE_INCLUDE_ZLIB_CODE 1 189 | #endif 190 | 191 | #ifndef JUCE_USE_CURL 192 | //#define JUCE_USE_CURL 0 193 | #endif 194 | 195 | #ifndef JUCE_CATCH_UNHANDLED_EXCEPTIONS 196 | //#define JUCE_CATCH_UNHANDLED_EXCEPTIONS 1 197 | #endif 198 | 199 | #ifndef JUCE_ALLOW_STATIC_NULL_VARIABLES 200 | //#define JUCE_ALLOW_STATIC_NULL_VARIABLES 1 201 | #endif 202 | 203 | //============================================================================== 204 | // juce_events flags: 205 | 206 | #ifndef JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK 207 | //#define JUCE_EXECUTE_APP_SUSPEND_ON_IOS_BACKGROUND_TASK 0 208 | #endif 209 | 210 | //============================================================================== 211 | // juce_graphics flags: 212 | 213 | #ifndef JUCE_USE_COREIMAGE_LOADER 214 | //#define JUCE_USE_COREIMAGE_LOADER 1 215 | #endif 216 | 217 | #ifndef JUCE_USE_DIRECTWRITE 218 | //#define JUCE_USE_DIRECTWRITE 1 219 | #endif 220 | 221 | //============================================================================== 222 | // juce_gui_basics flags: 223 | 224 | #ifndef JUCE_ENABLE_REPAINT_DEBUGGING 225 | //#define JUCE_ENABLE_REPAINT_DEBUGGING 0 226 | #endif 227 | 228 | #ifndef JUCE_USE_XRANDR 229 | //#define JUCE_USE_XRANDR 1 230 | #endif 231 | 232 | #ifndef JUCE_USE_XINERAMA 233 | //#define JUCE_USE_XINERAMA 1 234 | #endif 235 | 236 | #ifndef JUCE_USE_XSHM 237 | //#define JUCE_USE_XSHM 1 238 | #endif 239 | 240 | #ifndef JUCE_USE_XRENDER 241 | //#define JUCE_USE_XRENDER 0 242 | #endif 243 | 244 | #ifndef JUCE_USE_XCURSOR 245 | //#define JUCE_USE_XCURSOR 1 246 | #endif 247 | 248 | //============================================================================== 249 | // juce_gui_extra flags: 250 | 251 | #ifndef JUCE_WEB_BROWSER 252 | //#define JUCE_WEB_BROWSER 1 253 | #endif 254 | 255 | #ifndef JUCE_ENABLE_LIVE_CONSTANT_EDITOR 256 | //#define JUCE_ENABLE_LIVE_CONSTANT_EDITOR 0 257 | #endif 258 | 259 | //============================================================================== 260 | // juce_video flags: 261 | 262 | #ifndef JUCE_USE_CAMERA 263 | //#define JUCE_USE_CAMERA 0 264 | #endif 265 | //============================================================================== 266 | #ifndef JUCE_STANDALONE_APPLICATION 267 | #if defined(JucePlugin_Name) && defined(JucePlugin_Build_Standalone) 268 | #define JUCE_STANDALONE_APPLICATION JucePlugin_Build_Standalone 269 | #else 270 | #define JUCE_STANDALONE_APPLICATION 1 271 | #endif 272 | #endif 273 | -------------------------------------------------------------------------------- /Builds/MacOSX/simpleAudioPlayer.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | 9D8FA52BA5C96E3D462ACFEF = {isa = PBXBuildFile; fileRef = 39FD32DECF1C110587D18A58; }; 10 | 28853523F34C1025E030669C = {isa = PBXBuildFile; fileRef = A6F030DAD20B85A877BC488E; }; 11 | D84D204B1B802CED04E1CA50 = {isa = PBXBuildFile; fileRef = 6B70C25D6E41F0FB8F52B649; }; 12 | 75D004E312B07365BE8C48BA = {isa = PBXBuildFile; fileRef = E20B733DC99D91044C71D9AA; }; 13 | 5F9090D1A67FFC5CE4FAFD86 = {isa = PBXBuildFile; fileRef = F5C21FFE7717E25289F0A0CF; }; 14 | B3B82541EB25EE5919CA4067 = {isa = PBXBuildFile; fileRef = 8C25C2C15B1753239A534B61; }; 15 | EC1C3852398994483764A17D = {isa = PBXBuildFile; fileRef = 547329D96CE224D00C4E97FD; }; 16 | 0F3386B1994A5C185C2EFB9F = {isa = PBXBuildFile; fileRef = 84A20B1EBAB7E79940589108; }; 17 | C95B3356960452E53058DD56 = {isa = PBXBuildFile; fileRef = 1E5FEFBA790C0BB2F1CA2B6C; }; 18 | 11D9DCCFEB6123DF95CDC974 = {isa = PBXBuildFile; fileRef = 0A7438588291180B8297D1B5; }; 19 | 1A7E7EF224F9A3EC108D276B = {isa = PBXBuildFile; fileRef = 3D59988C2F94B5FF690DFD29; }; 20 | 289D6AFBFFE639015A1AE975 = {isa = PBXBuildFile; fileRef = 8B3A7150D21CEBB9AB043623; }; 21 | 98C0E5F012E1A83D8B36873C = {isa = PBXBuildFile; fileRef = 96290F463BEA0FB0A2615236; }; 22 | EDA6819E544B14CEDE196670 = {isa = PBXBuildFile; fileRef = 981D56CC636D45D43B8858AD; }; 23 | 9F36E3FADD1D0C240F7E0982 = {isa = PBXBuildFile; fileRef = 85DCB974014DF7B67C8254B1; }; 24 | 646E0933AD9148EFE806B53D = {isa = PBXBuildFile; fileRef = F5ABFBD4EBE0C173E9BCA188; }; 25 | BE92ADF93DA98BB8A046EDAD = {isa = PBXBuildFile; fileRef = 1778391323DF187BCEA1F9E6; }; 26 | 99522CD8FC8FDE5FD0865995 = {isa = PBXBuildFile; fileRef = DC06165A52FEB138B763D60C; }; 27 | F4FEC6CD485CB39B730644D5 = {isa = PBXBuildFile; fileRef = 532B522A46C5497B68FDE3B5; }; 28 | 328AA3D7CC3CCC4F2689FE84 = {isa = PBXBuildFile; fileRef = 95D03AC965CA63CD24F80789; }; 29 | EA8DF04780810B88F710DAEB = {isa = PBXBuildFile; fileRef = 9EE3853CDF250E9D53D4A7D4; }; 30 | 5A895F5751994230DB63E9F8 = {isa = PBXBuildFile; fileRef = 5B68DAE846C5A2BA46E62572; }; 31 | 6F1758D117B3C2E97171DBD7 = {isa = PBXBuildFile; fileRef = 5BE41AE08B01BE7BF9CF5392; }; 32 | DE45780DE5780391AF445533 = {isa = PBXBuildFile; fileRef = 9E1DC38749F668680670A22F; }; 33 | E54F1DF71F711C7934FC0DE8 = {isa = PBXBuildFile; fileRef = 37F2AE9D0ECFA96B44CDABB2; }; 34 | 4C3B28EAA058C8BA53E724EF = {isa = PBXBuildFile; fileRef = DBAD880318C0DFCC3DCE45C3; }; 35 | FA308D6EA223CE255BEAE42E = {isa = PBXBuildFile; fileRef = E6F84987E5BA88B986EC6290; }; 36 | 4969E08CA5714A9D9A6A2CFC = {isa = PBXBuildFile; fileRef = 8F017467C3C6E7A5ED3B21B7; }; 37 | C9DF96E832D48A0661530A10 = {isa = PBXBuildFile; fileRef = 667F6D0CC4C774A8F24CE142; }; 38 | B3E92563FEB402D5F8917C3F = {isa = PBXBuildFile; fileRef = 7C0017981A300FF246A0E779; }; 39 | C609B150664D79FBEE1C729E = {isa = PBXBuildFile; fileRef = 8E0EA3A7C6B5162FD8A821CE; }; 40 | 67A8D0C3748B6C0B501B753D = {isa = PBXBuildFile; fileRef = 9A472801DFF6020E9C3EDB6A; }; 41 | 0A38AAB1D275B646CF133A3A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_core"; path = "../../../../../../../../Applications/JUCE/modules/juce_core"; sourceTree = "SOURCE_ROOT"; }; 42 | 0A7438588291180B8297D1B5 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; 43 | 1778391323DF187BCEA1F9E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = "SOURCE_ROOT"; }; 44 | 1E5FEFBA790C0BB2F1CA2B6C = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; 45 | 26307321E0ACBF475930B2A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MainComponent.h; path = ../../Source/MainComponent.h; sourceTree = "SOURCE_ROOT"; }; 46 | 310C0496CC395692AF7E5E14 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_data_structures"; path = "../../../../../../../../Applications/JUCE/modules/juce_data_structures"; sourceTree = "SOURCE_ROOT"; }; 47 | 37F2AE9D0ECFA96B44CDABB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_cryptography.mm"; path = "../../JuceLibraryCode/include_juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; 48 | 39FD32DECF1C110587D18A58 = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = simpleAudioPlayer.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; 49 | 3D59988C2F94B5FF690DFD29 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; 50 | 45E485F80C0302BDC3667D78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; 51 | 4AE6B9E29AC7BB87DBDADD00 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_basics"; path = "../../../../../../../../Applications/JUCE/modules/juce_gui_basics"; sourceTree = "SOURCE_ROOT"; }; 52 | 4C89A93E8D552978C699EDA6 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_events"; path = "../../../../../../../../Applications/JUCE/modules/juce_events"; sourceTree = "SOURCE_ROOT"; }; 53 | 50CABF915DED7EB76240853C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_gui_extra"; path = "../../../../../../../../Applications/JUCE/modules/juce_gui_extra"; sourceTree = "SOURCE_ROOT"; }; 54 | 532B522A46C5497B68FDE3B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_basics.mm"; path = "../../JuceLibraryCode/include_juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; 55 | 547329D96CE224D00C4E97FD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 56 | 5B68DAE846C5A2BA46E62572 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_processors.mm"; path = "../../JuceLibraryCode/include_juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; 57 | 5BE41AE08B01BE7BF9CF5392 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_utils.mm"; path = "../../JuceLibraryCode/include_juce_audio_utils.mm"; sourceTree = "SOURCE_ROOT"; }; 58 | 667F6D0CC4C774A8F24CE142 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_basics.mm"; path = "../../JuceLibraryCode/include_juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; 59 | 6B70C25D6E41F0FB8F52B649 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 60 | 71CDD9CF8B8F92B5A861C3CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; 61 | 7C0017981A300FF246A0E779 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_gui_extra.mm"; path = "../../JuceLibraryCode/include_juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; 62 | 845AC361FC571A104E15488A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_formats"; path = "../../../../../../../../Applications/JUCE/modules/juce_audio_formats"; sourceTree = "SOURCE_ROOT"; }; 63 | 84A20B1EBAB7E79940589108 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; 64 | 85DCB974014DF7B67C8254B1 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; 65 | 8B3A7150D21CEBB9AB043623 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; 66 | 8C25C2C15B1753239A534B61 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; 67 | 8E0EA3A7C6B5162FD8A821CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_opengl.mm"; path = "../../JuceLibraryCode/include_juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; 68 | 8F017467C3C6E7A5ED3B21B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_graphics.mm"; path = "../../JuceLibraryCode/include_juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; 69 | 95D03AC965CA63CD24F80789 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_devices.mm"; path = "../../JuceLibraryCode/include_juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; 70 | 96290F463BEA0FB0A2615236 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; 71 | 981D56CC636D45D43B8858AD = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 72 | 9A472801DFF6020E9C3EDB6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_video.mm"; path = "../../JuceLibraryCode/include_juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; 73 | 9BC95F1B468FAA7A1D0E5E6B = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_utils"; path = "../../../../../../../../Applications/JUCE/modules/juce_audio_utils"; sourceTree = "SOURCE_ROOT"; }; 74 | 9E1DC38749F668680670A22F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_core.mm"; path = "../../JuceLibraryCode/include_juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; 75 | 9EE3853CDF250E9D53D4A7D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_audio_formats.mm"; path = "../../JuceLibraryCode/include_juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; 76 | A5E80509BCDED3CD6C66763C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_processors"; path = "../../../../../../../../Applications/JUCE/modules/juce_audio_processors"; sourceTree = "SOURCE_ROOT"; }; 77 | A6F030DAD20B85A877BC488E = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; 78 | BCA332D5F8BB1F4F1E860B40 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_graphics"; path = "../../../../../../../../Applications/JUCE/modules/juce_graphics"; sourceTree = "SOURCE_ROOT"; }; 79 | CF76D2827A2DCC2FEE58EF99 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_cryptography"; path = "../../../../../../../../Applications/JUCE/modules/juce_cryptography"; sourceTree = "SOURCE_ROOT"; }; 80 | D42CD5431B901770DF3703AD = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_opengl"; path = "../../../../../../../../Applications/JUCE/modules/juce_opengl"; sourceTree = "SOURCE_ROOT"; }; 81 | D8D0C49BF1F50EB358B6088C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_devices"; path = "../../../../../../../../Applications/JUCE/modules/juce_audio_devices"; sourceTree = "SOURCE_ROOT"; }; 82 | DBAD880318C0DFCC3DCE45C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_data_structures.mm"; path = "../../JuceLibraryCode/include_juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; 83 | DC06165A52FEB138B763D60C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; 84 | DE24B14528ABCFC270931AF1 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_audio_basics"; path = "../../../../../../../../Applications/JUCE/modules/juce_audio_basics"; sourceTree = "SOURCE_ROOT"; }; 85 | E20B733DC99D91044C71D9AA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 86 | E6F84987E5BA88B986EC6290 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "include_juce_events.mm"; path = "../../JuceLibraryCode/include_juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; 87 | EF634ED69ED27C8B7CF8A863 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_video"; path = "../../../../../../../../Applications/JUCE/modules/juce_video"; sourceTree = "SOURCE_ROOT"; }; 88 | F488DADAC0628D36F2781BEA = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Info-App.plist"; path = "Info-App.plist"; sourceTree = "SOURCE_ROOT"; }; 89 | F5ABFBD4EBE0C173E9BCA188 = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; 90 | F5C21FFE7717E25289F0A0CF = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = System/Library/Frameworks/AVKit.framework; sourceTree = SDKROOT; }; 91 | FECAF4C38D360C5F60A4B313 = {isa = PBXGroup; children = ( 92 | 26307321E0ACBF475930B2A8, 93 | 1778391323DF187BCEA1F9E6, 94 | DC06165A52FEB138B763D60C, ); name = Source; sourceTree = ""; }; 95 | D8565EA5CDBA3CC74C0C2D3D = {isa = PBXGroup; children = ( 96 | FECAF4C38D360C5F60A4B313, ); name = simpleAudioPlayer; sourceTree = ""; }; 97 | 80007922017620D2A20603BB = {isa = PBXGroup; children = ( 98 | DE24B14528ABCFC270931AF1, 99 | D8D0C49BF1F50EB358B6088C, 100 | 845AC361FC571A104E15488A, 101 | A5E80509BCDED3CD6C66763C, 102 | 9BC95F1B468FAA7A1D0E5E6B, 103 | 0A38AAB1D275B646CF133A3A, 104 | CF76D2827A2DCC2FEE58EF99, 105 | 310C0496CC395692AF7E5E14, 106 | 4C89A93E8D552978C699EDA6, 107 | BCA332D5F8BB1F4F1E860B40, 108 | 4AE6B9E29AC7BB87DBDADD00, 109 | 50CABF915DED7EB76240853C, 110 | D42CD5431B901770DF3703AD, 111 | EF634ED69ED27C8B7CF8A863, ); name = "JUCE Modules"; sourceTree = ""; }; 112 | 3D65EAFAF0167EBFCF81AB84 = {isa = PBXGroup; children = ( 113 | 45E485F80C0302BDC3667D78, 114 | 532B522A46C5497B68FDE3B5, 115 | 95D03AC965CA63CD24F80789, 116 | 9EE3853CDF250E9D53D4A7D4, 117 | 5B68DAE846C5A2BA46E62572, 118 | 5BE41AE08B01BE7BF9CF5392, 119 | 9E1DC38749F668680670A22F, 120 | 37F2AE9D0ECFA96B44CDABB2, 121 | DBAD880318C0DFCC3DCE45C3, 122 | E6F84987E5BA88B986EC6290, 123 | 8F017467C3C6E7A5ED3B21B7, 124 | 667F6D0CC4C774A8F24CE142, 125 | 7C0017981A300FF246A0E779, 126 | 8E0EA3A7C6B5162FD8A821CE, 127 | 9A472801DFF6020E9C3EDB6A, 128 | 71CDD9CF8B8F92B5A861C3CD, ); name = "JUCE Library Code"; sourceTree = ""; }; 129 | 3FEBCFCA15C29C5371CBB710 = {isa = PBXGroup; children = ( 130 | F488DADAC0628D36F2781BEA, 131 | F5ABFBD4EBE0C173E9BCA188, ); name = Resources; sourceTree = ""; }; 132 | 405B6CAD79388AF6FA9480C8 = {isa = PBXGroup; children = ( 133 | A6F030DAD20B85A877BC488E, 134 | 6B70C25D6E41F0FB8F52B649, 135 | E20B733DC99D91044C71D9AA, 136 | F5C21FFE7717E25289F0A0CF, 137 | 8C25C2C15B1753239A534B61, 138 | 547329D96CE224D00C4E97FD, 139 | 84A20B1EBAB7E79940589108, 140 | 1E5FEFBA790C0BB2F1CA2B6C, 141 | 0A7438588291180B8297D1B5, 142 | 3D59988C2F94B5FF690DFD29, 143 | 8B3A7150D21CEBB9AB043623, 144 | 96290F463BEA0FB0A2615236, 145 | 981D56CC636D45D43B8858AD, 146 | 85DCB974014DF7B67C8254B1, ); name = Frameworks; sourceTree = ""; }; 147 | D2FF50487D3A5D1211CCF6C3 = {isa = PBXGroup; children = ( 148 | 39FD32DECF1C110587D18A58, ); name = Products; sourceTree = ""; }; 149 | C34DE710735693195CC8903B = {isa = PBXGroup; children = ( 150 | D8565EA5CDBA3CC74C0C2D3D, 151 | 80007922017620D2A20603BB, 152 | 3D65EAFAF0167EBFCF81AB84, 153 | 3FEBCFCA15C29C5371CBB710, 154 | 405B6CAD79388AF6FA9480C8, 155 | D2FF50487D3A5D1211CCF6C3, ); name = Source; sourceTree = ""; }; 156 | CE8A011724D6661F5CC98CBF = {isa = XCBuildConfiguration; buildSettings = { 157 | CLANG_CXX_LANGUAGE_STANDARD = "c++14"; 158 | CLANG_CXX_LIBRARY = "libc++"; 159 | CLANG_LINK_OBJC_RUNTIME = NO; 160 | COMBINE_HIDPI_IMAGES = YES; 161 | CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; 162 | COPY_PHASE_STRIP = NO; 163 | GCC_DYNAMIC_NO_PIC = NO; 164 | GCC_OPTIMIZATION_LEVEL = 0; 165 | GCC_PREPROCESSOR_DEFINITIONS = ( 166 | "_DEBUG=1", 167 | "DEBUG=1", 168 | "JUCER_XCODE_MAC_F6D2F4CF=1", 169 | "JUCE_APP_VERSION=1.0.0", 170 | "JUCE_APP_VERSION_HEX=0x10000", 171 | "JucePlugin_Build_VST=0", 172 | "JucePlugin_Build_VST3=0", 173 | "JucePlugin_Build_AU=0", 174 | "JucePlugin_Build_AUv3=0", 175 | "JucePlugin_Build_RTAS=0", 176 | "JucePlugin_Build_AAX=0", 177 | "JucePlugin_Build_Standalone=0", ); 178 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 179 | HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../../../../../Applications/JUCE/modules", "$(inherited)"); 180 | INFOPLIST_FILE = Info-App.plist; 181 | INFOPLIST_PREPROCESS = NO; 182 | INSTALL_PATH = "$(HOME)/Applications"; 183 | MACOSX_DEPLOYMENT_TARGET = 10.11; 184 | MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; 185 | PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.simpleAudioPlayer; 186 | SDKROOT_ppc = macosx10.5; 187 | USE_HEADERMAP = NO; }; name = Debug; }; 188 | B40B275E0B727E3AAD69C4BA = {isa = XCBuildConfiguration; buildSettings = { 189 | CLANG_CXX_LANGUAGE_STANDARD = "c++14"; 190 | CLANG_CXX_LIBRARY = "libc++"; 191 | CLANG_LINK_OBJC_RUNTIME = NO; 192 | COMBINE_HIDPI_IMAGES = YES; 193 | CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; 194 | DEAD_CODE_STRIPPING = YES; 195 | GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 196 | GCC_OPTIMIZATION_LEVEL = 3; 197 | GCC_PREPROCESSOR_DEFINITIONS = ( 198 | "_NDEBUG=1", 199 | "NDEBUG=1", 200 | "JUCER_XCODE_MAC_F6D2F4CF=1", 201 | "JUCE_APP_VERSION=1.0.0", 202 | "JUCE_APP_VERSION_HEX=0x10000", 203 | "JucePlugin_Build_VST=0", 204 | "JucePlugin_Build_VST3=0", 205 | "JucePlugin_Build_AU=0", 206 | "JucePlugin_Build_AUv3=0", 207 | "JucePlugin_Build_RTAS=0", 208 | "JucePlugin_Build_AAX=0", 209 | "JucePlugin_Build_Standalone=0", ); 210 | GCC_SYMBOLS_PRIVATE_EXTERN = YES; 211 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 212 | HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../../../../../Applications/JUCE/modules", "$(inherited)"); 213 | INFOPLIST_FILE = Info-App.plist; 214 | INFOPLIST_PREPROCESS = NO; 215 | INSTALL_PATH = "$(HOME)/Applications"; 216 | LLVM_LTO = YES; 217 | MACOSX_DEPLOYMENT_TARGET = 10.11; 218 | MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; 219 | PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.simpleAudioPlayer; 220 | SDKROOT_ppc = macosx10.5; 221 | USE_HEADERMAP = NO; }; name = Release; }; 222 | 402B780646DBE3BE14D9E341 = {isa = XCBuildConfiguration; buildSettings = { 223 | ALWAYS_SEARCH_USER_PATHS = NO; 224 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 225 | CLANG_WARN_BOOL_CONVERSION = YES; 226 | CLANG_WARN_COMMA = YES; 227 | CLANG_WARN_CONSTANT_CONVERSION = YES; 228 | CLANG_WARN_EMPTY_BODY = YES; 229 | CLANG_WARN_ENUM_CONVERSION = YES; 230 | CLANG_WARN_INFINITE_RECURSION = YES; 231 | CLANG_WARN_INT_CONVERSION = YES; 232 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 233 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 234 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 235 | CLANG_WARN_STRICT_PROTOTYPES = YES; 236 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 237 | CLANG_WARN_UNREACHABLE_CODE = YES; 238 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 239 | DEBUG_INFORMATION_FORMAT = "dwarf"; 240 | ENABLE_STRICT_OBJC_MSGSEND = YES; 241 | ENABLE_TESTABILITY = YES; 242 | GCC_C_LANGUAGE_STANDARD = c11; 243 | GCC_INLINES_ARE_PRIVATE_EXTERN = YES; 244 | GCC_MODEL_TUNING = G5; 245 | GCC_NO_COMMON_BLOCKS = YES; 246 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 247 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 248 | GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; 249 | GCC_WARN_MISSING_PARENTHESES = YES; 250 | GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; 251 | GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; 252 | GCC_WARN_UNDECLARED_SELECTOR = YES; 253 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 254 | GCC_WARN_UNUSED_FUNCTION = YES; 255 | GCC_WARN_UNUSED_VARIABLE = YES; 256 | ONLY_ACTIVE_ARCH = YES; 257 | PRODUCT_NAME = "simpleAudioPlayer"; 258 | WARNING_CFLAGS = -Wreorder; 259 | ZERO_LINK = NO; }; name = Debug; }; 260 | 500ED2AA4DD8F66B09A4CA4A = {isa = XCBuildConfiguration; buildSettings = { 261 | ALWAYS_SEARCH_USER_PATHS = NO; 262 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 263 | CLANG_WARN_BOOL_CONVERSION = YES; 264 | CLANG_WARN_COMMA = YES; 265 | CLANG_WARN_CONSTANT_CONVERSION = YES; 266 | CLANG_WARN_EMPTY_BODY = YES; 267 | CLANG_WARN_ENUM_CONVERSION = YES; 268 | CLANG_WARN_INFINITE_RECURSION = YES; 269 | CLANG_WARN_INT_CONVERSION = YES; 270 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 271 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 272 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 273 | CLANG_WARN_STRICT_PROTOTYPES = YES; 274 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 275 | CLANG_WARN_UNREACHABLE_CODE = YES; 276 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 277 | DEBUG_INFORMATION_FORMAT = "dwarf"; 278 | ENABLE_STRICT_OBJC_MSGSEND = YES; 279 | GCC_C_LANGUAGE_STANDARD = c11; 280 | GCC_INLINES_ARE_PRIVATE_EXTERN = YES; 281 | GCC_MODEL_TUNING = G5; 282 | GCC_NO_COMMON_BLOCKS = YES; 283 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 284 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 285 | GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; 286 | GCC_WARN_MISSING_PARENTHESES = YES; 287 | GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; 288 | GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; 289 | GCC_WARN_UNDECLARED_SELECTOR = YES; 290 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 291 | GCC_WARN_UNUSED_FUNCTION = YES; 292 | GCC_WARN_UNUSED_VARIABLE = YES; 293 | PRODUCT_NAME = "simpleAudioPlayer"; 294 | WARNING_CFLAGS = -Wreorder; 295 | ZERO_LINK = NO; }; name = Release; }; 296 | 87D6B98F88B324346B3CB2DF = {isa = PBXTargetDependency; target = 92A93D2A024EAB1E8ABD8000; }; 297 | 0D4020E05BD563037EFE5638 = {isa = XCConfigurationList; buildConfigurations = ( 298 | 402B780646DBE3BE14D9E341, 299 | 500ED2AA4DD8F66B09A4CA4A, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; 300 | CE1DE71575A0A687BBB6475D = {isa = XCConfigurationList; buildConfigurations = ( 301 | CE8A011724D6661F5CC98CBF, 302 | B40B275E0B727E3AAD69C4BA, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; 303 | C0C8179729512555BE2748AB = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 304 | 646E0933AD9148EFE806B53D, ); runOnlyForDeploymentPostprocessing = 0; }; 305 | BC41FB83B1FEE3E651E9456E = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 306 | BE92ADF93DA98BB8A046EDAD, 307 | 99522CD8FC8FDE5FD0865995, 308 | F4FEC6CD485CB39B730644D5, 309 | 328AA3D7CC3CCC4F2689FE84, 310 | EA8DF04780810B88F710DAEB, 311 | 5A895F5751994230DB63E9F8, 312 | 6F1758D117B3C2E97171DBD7, 313 | DE45780DE5780391AF445533, 314 | E54F1DF71F711C7934FC0DE8, 315 | 4C3B28EAA058C8BA53E724EF, 316 | FA308D6EA223CE255BEAE42E, 317 | 4969E08CA5714A9D9A6A2CFC, 318 | C9DF96E832D48A0661530A10, 319 | B3E92563FEB402D5F8917C3F, 320 | C609B150664D79FBEE1C729E, 321 | 67A8D0C3748B6C0B501B753D, ); runOnlyForDeploymentPostprocessing = 0; }; 322 | 4BEA140C86692C6647B053D1 = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 323 | 28853523F34C1025E030669C, 324 | D84D204B1B802CED04E1CA50, 325 | 75D004E312B07365BE8C48BA, 326 | 5F9090D1A67FFC5CE4FAFD86, 327 | B3B82541EB25EE5919CA4067, 328 | EC1C3852398994483764A17D, 329 | 0F3386B1994A5C185C2EFB9F, 330 | C95B3356960452E53058DD56, 331 | 11D9DCCFEB6123DF95CDC974, 332 | 1A7E7EF224F9A3EC108D276B, 333 | 289D6AFBFFE639015A1AE975, 334 | 98C0E5F012E1A83D8B36873C, 335 | EDA6819E544B14CEDE196670, 336 | 9F36E3FADD1D0C240F7E0982, ); runOnlyForDeploymentPostprocessing = 0; }; 337 | 92A93D2A024EAB1E8ABD8000 = {isa = PBXNativeTarget; buildConfigurationList = CE1DE71575A0A687BBB6475D; buildPhases = ( 338 | C0C8179729512555BE2748AB, 339 | BC41FB83B1FEE3E651E9456E, 340 | 4BEA140C86692C6647B053D1, ); buildRules = ( ); dependencies = ( ); name = "simpleAudioPlayer - App"; productName = simpleAudioPlayer; productReference = 39FD32DECF1C110587D18A58; productType = "com.apple.product-type.application"; }; 341 | 920BAF88E5D44D231DD281B9 = {isa = PBXProject; buildConfigurationList = 0D4020E05BD563037EFE5638; attributes = { LastUpgradeCheck = 0930; ORGANIZATIONNAME = ""; TargetAttributes = { 92A93D2A024EAB1E8ABD8000 = { SystemCapabilities = {com.apple.ApplicationGroups.iOS = { enabled = 0; }; com.apple.InAppPurchase = { enabled = 0; }; com.apple.InterAppAudio = { enabled = 0; }; com.apple.Push = { enabled = 0; }; com.apple.Sandbox = { enabled = 0; }; }; }; }; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = C34DE710735693195CC8903B; projectDirPath = ""; projectRoot = ""; targets = (92A93D2A024EAB1E8ABD8000); }; 342 | }; 343 | rootObject = 920BAF88E5D44D231DD281B9; 344 | } 345 | --------------------------------------------------------------------------------