The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.4KB

  1. /*
  2. ==============================================================================
  3. This is an automatically generated GUI class created by the Introjucer!
  4. Be careful when adding custom code to these files, as only the code within
  5. the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
  6. and re-saved.
  7. Created with Introjucer version: 3.1.0
  8. ------------------------------------------------------------------------------
  9. The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
  10. Copyright 2004-13 by Raw Material Software Ltd.
  11. ==============================================================================
  12. */
  13. #ifndef __JUCE_HEADER_AFB2CF84BB553F2A__
  14. #define __JUCE_HEADER_AFB2CF84BB553F2A__
  15. //[Headers] -- You can add your own extra header files here --
  16. #include "../jucedemo_headers.h"
  17. class DemoThumbnailComp;
  18. //[/Headers]
  19. //==============================================================================
  20. /**
  21. //[Comments]
  22. An auto-generated component, created by the Jucer.
  23. Describe your class and how it works here!
  24. //[/Comments]
  25. */
  26. class AudioDemoPlaybackPage : public Component,
  27. public FileBrowserListener,
  28. public SliderListener,
  29. public ButtonListener
  30. {
  31. public:
  32. //==============================================================================
  33. AudioDemoPlaybackPage (AudioDeviceManager& deviceManager_);
  34. ~AudioDemoPlaybackPage();
  35. //==============================================================================
  36. //[UserMethods] -- You can add your own custom methods in this section.
  37. // These methods are our FileBrowserListener implementation:
  38. void selectionChanged();
  39. void fileClicked (const File& file, const MouseEvent& e);
  40. void fileDoubleClicked (const File& file);
  41. void browserRootChanged (const File&) {}
  42. void showFile (const File& file);
  43. //[/UserMethods]
  44. void paint (Graphics& g);
  45. void resized();
  46. void sliderValueChanged (Slider* sliderThatWasMoved);
  47. void buttonClicked (Button* buttonThatWasClicked);
  48. private:
  49. //[UserVariables] -- You can add your own custom variables in this section.
  50. AudioDeviceManager& deviceManager;
  51. AudioFormatManager formatManager;
  52. TimeSliceThread thread;
  53. DirectoryContentsList directoryList;
  54. AudioSourcePlayer audioSourcePlayer;
  55. AudioTransportSource transportSource;
  56. ScopedPointer<AudioFormatReaderSource> currentAudioFileSource;
  57. void loadFileIntoTransport (const File& audioFile);
  58. //[/UserVariables]
  59. //==============================================================================
  60. ScopedPointer<Label> zoomLabel;
  61. ScopedPointer<Label> explanation;
  62. ScopedPointer<Slider> zoomSlider;
  63. ScopedPointer<DemoThumbnailComp> thumbnail;
  64. ScopedPointer<TextButton> startStopButton;
  65. ScopedPointer<FileTreeComponent> fileTreeComp;
  66. //==============================================================================
  67. JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AudioDemoPlaybackPage)
  68. };
  69. //[EndFile] You can add extra defines here...
  70. //[/EndFile]
  71. #endif // __JUCE_HEADER_AFB2CF84BB553F2A__