JogWheel.cpp |
The code implements a JogWheel component that displays a circular playhead and allows the user to drag it to change the current position of the song. |
JogWheel.h |
The JogWheel class is a component that functions as a playback control interface with a DJ deck appearance. It inherits functionalities from the ZoomedWaveform class and communicates with the DJAudioPlayer through the DeckGUI interface. It allows for drag interactions and displays a playhead with a timer. |
Library.cpp |
The code defines the core functionalities of a Library component. It reads XML files, populates track folders, allows for folder and track selection, deletion of items, file drag and drop, and saves the data back to the XML file. The component also includes a playlist and a directory widget. |
MainComponent.h |
This code defines the MainComponent class which handles the core functionalities of a DJ audio player application. It includes features such as loading and playing audio files, crossfading between decks, displaying waveforms, and managing a library of audio files. The class also handles audio processing and user interactions through key press and slider events. |
DeckGUI.cpp |
This code defines a C++ class named DeckGUI, which is part of an audio player application. Its core functionalities include initializing and managing the graphical user interface (GUI) elements for controlling audio playback. It creates buttons for play/pause and loading tracks, sliders for volume and speed control, and waveform displays for visualizing audio. The class handles user interactions with these components, such as button clicks and slider adjustments, to control the audio playback through a DJAudioPlayer instance. It also manages cue points associated with the audio tracks, updates the visual representation of the volume meter, and responds to file drag-and-drop events for loading audio tracks. Overall, it serves as the control interface for the audio player, allowing users to control playback, adjust settings, and visualize audio waveforms. |
Track.h |
The code defines a struct for a track, with properties like title, length, url, and identity. It also includes a static function to convert the track length to a string format. |
MainComponent.cpp |
The code defines a MainComponent class that represents the main graphical user interface. It sets up audio channels, configures components, and adds listeners. The class also handles resizing, painting, and key press events. Additionally, it manages audio sources, prepares them for playback, and processes audio blocks. The cross fader functionality is implemented, allowing user control over audio gain between two decks. |
Library.h |
The Library class manages a library of playlist folders. It allows users to select folders, view track lists, and add/delete folders and tracks. It uses XML for data persistance and supports drag and drop functionality. |
ZoomedWaveform.cpp |
The code implements a class called ZoomedWaveform that adds functionality to display a zoomed waveform and a fixed playhead. The waveform is drawn based on the position and the audio thumbnail. The mouseDrag method allows the user to move the playhead by dragging the mouse. |
ZoomedWaveform.h |
The ZoomedWaveform component is a subclass of the WaveformDisplay component. It has a similar appearance but different playback control functionality. It communicates with the DJAudioPlayer through the DeckGUI interface. Its core functions include painting the component, setting component bounds, and handling mouse events. |
PlaylistComponent.h |
The PlaylistComponent class manages a folder of tracks and provides functionalities for track selection and searching. It includes methods for retrieving selected tracks and track indices, painting the component, handling text editor changes, and managing track title vectors. |
PlaylistComponent.cpp |
The code is for a PlaylistComponent that displays a table of track titles and lengths. It allows for searching the tracks by text and selecting a track. |
Main.cpp |
The code defines the OtoDecksApplication class, which serves as a JUCE application. It initializes and shuts down the application, handles system requests to quit, and manages the main application window. The MainWindow class is a desktop window that contains the MainComponent class. |
DeckGUI.h |
The DeckGUI class is responsible for creating a graphical user interface (GUI) for a DJ deck. It includes functionalities such as track loading, play/pause control, volume and speed adjustment, and filter manipulation. It also provides visual feedback through waveform displays and cue buttons. The class integrates with other components such as DJAudioPlayer, ZoomedWaveform, and Library to manage audio functionality. The GUI is customized with a theme color and custom look and feel. |
WaveformDisplay.h |
The WaveformDisplay component allows the user to load and display audio waveforms. It includes playback functionality, can set the playhead position, and communicates with DJAudioPlayer controls. The component also supports cue points and allows the user to interact with the waveform through mouse events. |
DJAudioPlayer.h |
The DJAudioPlayer class is an AudioSource that provides functionalities such as loading, playing, stopping, filtering, and adjusting gain and speed of audio files. It can also provide information about the loaded file, such as its URL and position. |
DJAudioPlayer.cpp |
The code defines a DJAudioPlayer class that contains functions for playing audio, controlling playback parameters like volume and speed, and applying filters. It uses the JUCE library for audio processing and handles file loading, playback control, and audio processing. |
CustomLookAndFeel.h |
The code defines a custom LookAndFeel class that customizes the appearance of sliders and table headers in a GUI application. It overrides the default methods for drawing linear and rotary sliders, as well as the table header background. It uses SVG images to create custom slider knobs. |
CustomLookAndFeel.cpp |
The code defines a custom look and feel for various UI components such as sliders and table headers. The functions in the code draw the components with specific styles and appearance, such as drawing knobs, ticks, and markers. |
WaveformDisplay.cpp |
The code creates a WaveformDisplay component that can load and display audio waveforms. It allows for setting cue points and provides functionalities for interacting with the waveform, such as dragging the playhead and displaying cue points. |