This PR introduces a generalized media display component that can be instantiated, managed, and interfaced with from within the main GUI. The display component can represent either an audio thumbnail or a MIDI pianoroll. These are intended to be largely self-contained, though any swapping between them based on the file type being displayed is handled through the main GUI.
For now, there is no MIDI playback, and the width, zooming, and scrolling of the midi pianoroll does not conform to the generalized media display component class. This is because I expect the MIDI display component will need to undergo relatively significant changes. I am leaving roughly the original MIDI implementation that Christos added and considering completion of the remaining work for the MIDI display component as a separate task.
This PR introduces a generalized media display component that can be instantiated, managed, and interfaced with from within the main GUI. The display component can represent either an audio thumbnail or a MIDI pianoroll. These are intended to be largely self-contained, though any swapping between them based on the file type being displayed is handled through the main GUI.
For now, there is no MIDI playback, and the width, zooming, and scrolling of the midi pianoroll does not conform to the generalized media display component class. This is because I expect the MIDI display component will need to undergo relatively significant changes. I am leaving roughly the original MIDI implementation that Christos added and considering completion of the remaining work for the MIDI display component as a separate task.