Gin
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
MidiFileComponent Class Reference

Displays the contents of a MidiFilePlayer as a piano roll view. More...

#include <gin_midifilecomponent.h>

Inherits juce::Component, juce::Timer, and juce::FileDragAndDropTarget.

Public Types

enum  ColourIds {
  backgroundColourId = 0x1292e10 , noteColourId = 0x1292e11 , playheadColourId = 0x1292e12 , outlineColourId = 0x1292e13 ,
  dropHighlightColourId = 0x1292e14
}
 

Public Member Functions

 MidiFileComponent (MidiFilePlayer &player)
 
 ~MidiFileComponent () override
 
void paint (juce::Graphics &g) override
 
void timerCallback () override
 
bool isInterestedInFileDrag (const juce::StringArray &files) override
 
void fileDragEnter (const juce::StringArray &files, int x, int y) override
 
void fileDragExit (const juce::StringArray &files) override
 
void filesDropped (const juce::StringArray &files, int x, int y) override
 

Public Attributes

std::function< void()> onFileDropped
 Called when a file is loaded via drag & drop.
 
std::function< void()> onPlaybackStateChanged
 Called when playback state changes (started, stopped, or reached end).
 

Detailed Description

Displays the contents of a MidiFilePlayer as a piano roll view.

MidiFileComponent renders MIDI notes from a MidiFilePlayer as horizontal bars on a piano roll style display. It also shows a playhead indicating the current playback position.

Key Features:

Usage:

player.load(midiFile);
Displays the contents of a MidiFilePlayer as a piano roll view.
Definition gin_midifilecomponent.h:44
Plays back MIDI files with configurable tempo.
Definition gin_midifileplayer.h:53
bool load(const juce::File &file)
Loads a MIDI file for playback.
A lightweight 2D point class for projects that don't use juce_graphics.
Definition gin_point.h:25
void addAndMakeVisible(juce::Component &parent, juce::Array< juce::Component * > children)
Adds an Array of components to a parent Component.
Definition gin_componentutils.h:16
See also
MidiFilePlayer

Member Enumeration Documentation

◆ ColourIds

Enumerator
backgroundColourId 
noteColourId 
playheadColourId 
outlineColourId 
dropHighlightColourId 

Constructor & Destructor Documentation

◆ MidiFileComponent()

MidiFileComponent::MidiFileComponent ( MidiFilePlayer player)

◆ ~MidiFileComponent()

MidiFileComponent::~MidiFileComponent ( )
override

Member Function Documentation

◆ paint()

void MidiFileComponent::paint ( juce::Graphics &  g)
override

◆ timerCallback()

void MidiFileComponent::timerCallback ( )
override

◆ isInterestedInFileDrag()

bool MidiFileComponent::isInterestedInFileDrag ( const juce::StringArray &  files)
override

◆ fileDragEnter()

void MidiFileComponent::fileDragEnter ( const juce::StringArray &  files,
int  x,
int  y 
)
override

◆ fileDragExit()

void MidiFileComponent::fileDragExit ( const juce::StringArray &  files)
override

◆ filesDropped()

void MidiFileComponent::filesDropped ( const juce::StringArray &  files,
int  x,
int  y 
)
override

Member Data Documentation

◆ onFileDropped

std::function<void()> MidiFileComponent::onFileDropped

Called when a file is loaded via drag & drop.

◆ onPlaybackStateChanged

std::function<void()> MidiFileComponent::onPlaybackStateChanged

Called when playback state changes (started, stopped, or reached end).


The documentation for this class was generated from the following file: