Multiple features were added in this week to the tool as scheduled, I have spent most of the development time to understand some internal architectures of Audacity.
For instance, how RegisteredFactory
provides ways of binding data to a host class to avoid circular dependencies, and how UndoManger
utilize multiple layers of polymorphism to achieve complete state backup.
The native color scheme
Referencing to the original selection tool, it blends nicely into the spectrogram view without losing transparency, so the brush tool will also be modified accordingly, providing similar user experience. (Link to commit)
The original selection color scheme Brush tool adapts to the color scheme
The eraser tool
The basic eraser tool has been added, user will now be able to erase the selected area. This feature is currently triggered by pressing Ctrl
while dragging, the detailed designs will be further discussed with the team’s designers. (Link to commit)
Before After
The apply effect button
A prototype button has been added to apply different effects onto the selected area in the future (currently it simply removes the selection), it will most likely to be replaced with non-modal dialogue, with optional features UI like brush size slider. (Link to commit)
The redo/undo feature
In the project manager, the undo manger will trigger virtual CopyTo()
that are inherited by different derived classes, I have added another method right after it reaches WaveTrackView
, since different data from sub-views should also be copied into the state history. Taking the whole Track
as an argument into single sub-view seems to be counter-intuitive since we are expecting one-to-one sub-view copying. (Link to commit)