Skip to content

Commit

Permalink
Add source data changed callback
Browse files Browse the repository at this point in the history
  • Loading branch information
FangCunWuChang committed May 24, 2024
1 parent ffb478f commit d2fda86
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/audioCore/graph/SeqSourceProcessor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,7 @@ void SeqSourceProcessor::initAudio(double sampleRate, double length) {

/** Callback */
UICallbackAPI<int>::invoke(UICallbackType::SeqDataRefChanged, this->index);
UICallbackAPI<int>::invoke(UICallbackType::SourceChanged, this->index);
}

void SeqSourceProcessor::initMIDI() {
Expand All @@ -327,6 +328,7 @@ void SeqSourceProcessor::initMIDI() {

/** Callback */
UICallbackAPI<int>::invoke(UICallbackType::SeqDataRefChanged, this->index);
UICallbackAPI<int>::invoke(UICallbackType::SourceChanged, this->index);
}

void SeqSourceProcessor::setAudio(double sampleRate,
Expand All @@ -352,6 +354,7 @@ void SeqSourceProcessor::setAudio(double sampleRate,

/** Callback */
UICallbackAPI<int>::invoke(UICallbackType::SeqDataRefChanged, this->index);
UICallbackAPI<int>::invoke(UICallbackType::SourceChanged, this->index);
}

void SeqSourceProcessor::setMIDI(
Expand All @@ -368,6 +371,7 @@ void SeqSourceProcessor::setMIDI(

/** Callback */
UICallbackAPI<int>::invoke(UICallbackType::SeqDataRefChanged, this->index);
UICallbackAPI<int>::invoke(UICallbackType::SourceChanged, this->index);
}

const std::tuple<double, juce::AudioSampleBuffer> SeqSourceProcessor::getAudio() const {
Expand Down
4 changes: 4 additions & 0 deletions src/ui/component/sequencer/SeqTrackComponent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,10 @@ void SeqTrackComponent::updateDataRef() {
this->content->updateDataRef();
}

void SeqTrackComponent::updateData() {
this->content->updateData();
}

void SeqTrackComponent::resized() {
/** Size */
auto screenSize = utils::getScreenSize(this);
Expand Down
1 change: 1 addition & 0 deletions src/ui/component/sequencer/SeqTrackComponent.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class SeqTrackComponent final
void updateHPos(double pos, double itemSize);
void updateMixerTrack();
void updateDataRef();
void updateData();

void resized() override;
void paint(juce::Graphics& g) override;
Expand Down
4 changes: 2 additions & 2 deletions src/ui/component/sequencer/SeqTrackContentViewer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ void SeqTrackContentViewer::updateData() {
/** Clear Temp */
this->audioDataTemp = {};
this->midiDataTemp = juce::MidiFile{};
this->audioPointTemp.clear();
this->midiMinNote = this->midiMaxNote = 0;
//this->audioPointTemp.clear();
//this->midiMinNote = this->midiMaxNote = 0;

/** Get Audio Data */
if (this->audioValid) {
Expand Down
22 changes: 22 additions & 0 deletions src/ui/component/sequencer/SeqView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,17 @@ void SeqView::TrackList::updateDataRef(int index) {
}
}

void SeqView::TrackList::updateData(int index) {
if (index >= 0 && index < this->list.size()) {
this->list[index]->updateData();
}
else {
for (auto i : this->list) {
i->updateData();
}
}
}

void SeqView::TrackList::updateHPos(double pos, double itemSize) {
for (auto i : this->list) {
i->updateHPos(pos, itemSize);
Expand Down Expand Up @@ -235,6 +246,13 @@ SeqView::SeqView()
}
}
);
CoreCallbacks::getInstance()->addSourceChanged(
[comp = SeqView::SafePointer(this)](int index) {
if (comp) {
comp->updateData(index);
}
}
);

/** Init Temp */
this->gridTemp = std::make_unique<juce::Image>(
Expand Down Expand Up @@ -555,6 +573,10 @@ void SeqView::updateDataRef(int index) {
this->trackList->updateDataRef(index);
}

void SeqView::updateData(int index) {
this->trackList->updateData(index);
}

std::tuple<double, double> SeqView::getViewArea(
double pos, double itemSize) const {
double secStart = pos / itemSize;
Expand Down
2 changes: 2 additions & 0 deletions src/ui/component/sequencer/SeqView.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class SeqView final
void updateLevelMeter() override;
void updateMixerTrack(int index);
void updateDataRef(int index);
void updateData(int index);

std::tuple<double, double> getViewArea(double pos, double itemSize) const;

Expand All @@ -49,6 +50,7 @@ class SeqView final
void updateInstr(int index);
void updateMixerTrack();
void updateDataRef(int index);
void updateData(int index);

void updateHPos(double pos, double itemSize);
void updateVPos(double pos, double itemSize);
Expand Down

0 comments on commit d2fda86

Please sign in to comment.