| @@ -288,12 +288,24 @@ public: | |||
| addAndMakeVisible (followTransportButton); | |||
| followTransportButton.onClick = [this] { updateFollowTransportState(); }; | |||
| #if (JUCE_ANDROID || JUCE_IOS) | |||
| addAndMakeVisible (chooseFileButton); | |||
| chooseFileButton.addListener (this); | |||
| #else | |||
| addAndMakeVisible (fileTreeComp); | |||
| directoryList.setDirectory (File::getSpecialLocation (File::userHomeDirectory), true, true); | |||
| fileTreeComp.setColour (FileTreeComponent::backgroundColourId, Colours::lightgrey.withAlpha (0.6f)); | |||
| fileTreeComp.addListener (this); | |||
| addAndMakeVisible (explanation); | |||
| explanation.setFont (Font (14.00f, Font::plain)); | |||
| explanation.setJustificationType (Justification::bottomRight); | |||
| explanation.setEditable (false, false, false); | |||
| explanation.setColour (TextEditor::textColourId, Colours::black); | |||
| explanation.setColour (TextEditor::backgroundColourId, Colour (0x00000000)); | |||
| #endif | |||
| addAndMakeVisible (zoomSlider); | |||
| zoomSlider.setRange (0, 1, 0); | |||
| @@ -314,18 +326,6 @@ public: | |||
| thread.startThread (3); | |||
| #if (JUCE_ANDROID || JUCE_IOS) | |||
| addAndMakeVisible (chooseFileButton); | |||
| chooseFileButton.addListener (this); | |||
| #else | |||
| addAndMakeVisible (fileTreeComp); | |||
| directoryList.setDirectory (File::getSpecialLocation (File::userHomeDirectory), true, true); | |||
| fileTreeComp.setColour (FileTreeComponent::backgroundColourId, Colours::lightgrey.withAlpha (0.6f)); | |||
| fileTreeComp.addListener (this); | |||
| #endif | |||
| #ifndef JUCE_DEMO_RUNNER | |||
| RuntimePermissions::request (RuntimePermissions::recordAudio, | |||
| [this] (bool granted) | |||
| @@ -368,7 +368,14 @@ public: | |||
| auto r = getLocalBounds().reduced (4); | |||
| auto controls = r.removeFromBottom (90); | |||
| explanation.setBounds (controls.removeFromRight (controls.getWidth() / 3)); | |||
| auto controlRightBounds = controls.removeFromRight (controls.getWidth() / 3); | |||
| #if (JUCE_ANDROID || JUCE_IOS) | |||
| chooseFileButton.setBounds (controlRightBounds.reduced (10)); | |||
| #else | |||
| explanation.setBounds (controlRightBounds); | |||
| #endif | |||
| auto zoom = controls.removeFromTop (25); | |||
| zoomLabel .setBounds (zoom.removeFromLeft (50)); | |||
| @@ -378,12 +385,13 @@ public: | |||
| startStopButton .setBounds (controls); | |||
| r.removeFromBottom (6); | |||
| #if JUCE_ANDROID || JUCE_IOS | |||
| thumbnail->setBounds (r); | |||
| #else | |||
| thumbnail->setBounds (r.removeFromBottom (140)); | |||
| r.removeFromBottom (6); | |||
| #if (JUCE_ANDROID || JUCE_IOS) | |||
| chooseFileButton.setBounds (r); | |||
| #else | |||
| fileTreeComp.setBounds (r); | |||
| #endif | |||
| } | |||
| @@ -405,6 +413,7 @@ private: | |||
| #else | |||
| DirectoryContentsList directoryList {nullptr, thread}; | |||
| FileTreeComponent fileTreeComp {directoryList}; | |||
| Label explanation { {}, "Select an audio file in the treeview above, and this page will display its waveform, and let you play it.." }; | |||
| #endif | |||
| URL currentAudioFile; | |||
| @@ -413,8 +422,7 @@ private: | |||
| std::unique_ptr<AudioFormatReaderSource> currentAudioFileSource; | |||
| std::unique_ptr<DemoThumbnailComp> thumbnail; | |||
| Label zoomLabel { {}, "zoom:" }, | |||
| explanation { {}, "Select an audio file in the treeview above, and this page will display its waveform, and let you play it.." }; | |||
| Label zoomLabel { {}, "zoom:" }; | |||
| Slider zoomSlider { Slider::LinearHorizontal, Slider::NoTextBox }; | |||
| ToggleButton followTransportButton { "Follow Transport" }; | |||
| TextButton startStopButton { "Play/Stop" }; | |||