Skip to content

Commit ab6af3f

Browse files
committed
Add phoneme editor view and update other views
1 parent ca86396 commit ab6af3f

18 files changed

Lines changed: 1567 additions & 35 deletions

src/libs/3rdparty/dspxmodel

src/plugins/visualeditor/core/PianoRollPanelInterface.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <ScopicFlowCore/LabelSequenceInteractionController.h>
1717
#include <ScopicFlowCore/NoteEditLayerInteractionController.h>
1818
#include <ScopicFlowCore/ParameterEditorInteractionController.h>
19+
#include <ScopicFlowCore/PhonemeSequenceInteractionController.h>
1920
#include <ScopicFlowCore/ScrollBehaviorViewModel.h>
2021
#include <ScopicFlowCore/TimeLayoutViewModel.h>
2122
#include <ScopicFlowCore/TimeManipulator.h>
@@ -416,6 +417,7 @@ namespace VisualEditor {
416417
d->labelSequenceInteractionControllerOfKeySignature = ProjectViewModelContext::of(d->windowHandle)->createAndBindLabelSequenceInteractionControllerOfKeySignature(this);
417418
d->labelSequenceInteractionControllerOfLabel = ProjectViewModelContext::of(d->windowHandle)->createAndBindLabelSequenceInteractionControllerOfLabel(this);
418419
d->noteEditLayerInteractionController = ProjectViewModelContext::of(d->windowHandle)->createAndBindNoteEditLayerInteractionController(this);
420+
d->phonemeSequenceInteractionController = ProjectViewModelContext::of(d->windowHandle)->createAndBindPhonemeSequenceInteractionController(this);
419421
d->clavierViewModel = new sflow::ClavierViewModel(this);
420422
d->clavierInteractionController = new sflow::ClavierInteractionController(this);
421423

@@ -556,6 +558,11 @@ namespace VisualEditor {
556558
return d->noteEditLayerInteractionController;
557559
}
558560

561+
sflow::PhonemeSequenceInteractionController *PianoRollPanelInterface::phonemeSequenceInteractionController() const {
562+
Q_D(const PianoRollPanelInterface);
563+
return d->phonemeSequenceInteractionController;
564+
}
565+
559566
sflow::ClavierViewModel *PianoRollPanelInterface::clavierViewModel() const {
560567
Q_D(const PianoRollPanelInterface);
561568
return d->clavierViewModel;

src/plugins/visualeditor/core/PianoRollPanelInterface.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace sflow {
1717
class TimelineInteractionController;
1818
class LabelSequenceInteractionController;
1919
class NoteEditLayerInteractionController;
20+
class PhonemeSequenceInteractionController;
2021
class ClavierViewModel;
2122
class ClavierInteractionController;
2223
}
@@ -54,6 +55,7 @@ namespace VisualEditor {
5455
Q_PROPERTY(sflow::LabelSequenceInteractionController *labelSequenceInteractionControllerOfKeySignature READ labelSequenceInteractionControllerOfKeySignature CONSTANT)
5556
Q_PROPERTY(sflow::LabelSequenceInteractionController *labelSequenceInteractionControllerOfLabel READ labelSequenceInteractionControllerOfLabel CONSTANT)
5657
Q_PROPERTY(sflow::NoteEditLayerInteractionController *noteEditLayerInteractionController READ noteEditLayerInteractionController CONSTANT)
58+
Q_PROPERTY(sflow::PhonemeSequenceInteractionController *phonemeSequenceInteractionController READ phonemeSequenceInteractionController CONSTANT)
5759
Q_PROPERTY(sflow::ClavierViewModel *clavierViewModel READ clavierViewModel CONSTANT)
5860
Q_PROPERTY(sflow::ClavierInteractionController *clavierInteractionController READ clavierInteractionController CONSTANT)
5961
Q_PROPERTY(PositionAlignmentManipulator *positionAlignmentManipulator READ positionAlignmentManipulator CONSTANT)
@@ -83,6 +85,7 @@ namespace VisualEditor {
8385
sflow::LabelSequenceInteractionController *labelSequenceInteractionControllerOfKeySignature() const;
8486
sflow::LabelSequenceInteractionController *labelSequenceInteractionControllerOfLabel() const;
8587
sflow::NoteEditLayerInteractionController *noteEditLayerInteractionController() const;
88+
sflow::PhonemeSequenceInteractionController *phonemeSequenceInteractionController() const;
8689
sflow::ClavierViewModel *clavierViewModel() const;
8790
sflow::ClavierInteractionController *clavierInteractionController() const;
8891

src/plugins/visualeditor/core/PianoRollPanelInterface_p.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ namespace VisualEditor {
3636
sflow::LabelSequenceInteractionController *labelSequenceInteractionControllerOfKeySignature;
3737
sflow::LabelSequenceInteractionController *labelSequenceInteractionControllerOfLabel;
3838
sflow::NoteEditLayerInteractionController *noteEditLayerInteractionController;
39+
sflow::PhonemeSequenceInteractionController *phonemeSequenceInteractionController;
3940
sflow::ClavierViewModel *clavierViewModel;
4041
sflow::ClavierInteractionController *clavierInteractionController;
4142

src/plugins/visualeditor/core/ProjectViewModelContext.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <ScopicFlowCore/PlaybackViewModel.h>
88
#include <ScopicFlowCore/ListViewModel.h>
99
#include <ScopicFlowCore/NoteViewModel.h>
10+
#include <ScopicFlowCore/PhonemeSequenceInteractionController.h>
1011
#include <ScopicFlowCore/PointSequenceViewModel.h>
1112
#include <ScopicFlowCore/LabelViewModel.h>
1213
#include <ScopicFlowCore/RangeSequenceViewModel.h>
@@ -41,6 +42,7 @@
4142
#include <visualeditor/private/TrackViewModelContextData_p.h>
4243
#include <visualeditor/private/MasterTrackViewModelContextData_p.h>
4344
#include <visualeditor/private/NoteViewModelContextData_p.h>
45+
#include <visualeditor/private/PhonemeViewModelContextData_p.h>
4446
#include <visualeditor/private/NoteSelectionController_p.h>
4547
#include <visualeditor/DynamicMixingEditorContext.h>
4648
#include <visualeditor/ParameterEditorContext.h>
@@ -97,6 +99,11 @@ namespace VisualEditor {
9799
d->noteData->init();
98100
d->noteData->bindTrackSequences();
99101

102+
d->phonemeData = std::make_unique<PhonemeViewModelContextData>();
103+
d->phonemeData->q_ptr = this;
104+
d->phonemeData->init();
105+
d->phonemeData->bindTrackSequences();
106+
100107
d->parameterEditorContext = new ParameterEditorContext(this);
101108
d->dynamicMixingEditorContext = new DynamicMixingEditorContext(this);
102109

@@ -236,6 +243,11 @@ namespace VisualEditor {
236243
return d->noteData->createController(parent);
237244
}
238245

246+
sflow::PhonemeSequenceInteractionController *ProjectViewModelContext::createAndBindPhonemeSequenceInteractionController(QObject *parent) {
247+
Q_D(ProjectViewModelContext);
248+
return d->phonemeData->createController(parent);
249+
}
250+
239251
sflow::TrackListInteractionController *ProjectViewModelContext::createAndBindTrackListInteractionController(QObject *parent) {
240252
Q_D(ProjectViewModelContext);
241253
return d->trackData->createController(parent);
@@ -316,6 +328,11 @@ namespace VisualEditor {
316328
return d->noteData->noteSequenceViewModelMap.value(clip);
317329
}
318330

331+
sflow::PointSequenceViewModel *ProjectViewModelContext::getPhonemeSequenceViewModel(dspx::SingingClip *clip) const {
332+
Q_D(const ProjectViewModelContext);
333+
return d->phonemeData->phonemeSequenceViewModelMap.value(clip);
334+
}
335+
319336
}
320337

321338
#include "moc_ProjectViewModelContext.cpp"

src/plugins/visualeditor/core/ProjectViewModelContext.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace sflow {
1212
class ClipViewModel;
1313
class NoteEditLayerInteractionController;
1414
class NoteViewModel;
15+
class PhonemeSequenceInteractionController;
1516
class RangeSequenceViewModel;
1617
class PointSequenceViewModel;
1718
class LabelSequenceInteractionController;
@@ -105,6 +106,7 @@ namespace VisualEditor {
105106
Q_INVOKABLE sflow::LabelSequenceInteractionController *createAndBindLabelSequenceInteractionControllerOfLabel(QObject *parent = nullptr);
106107
Q_INVOKABLE sflow::ClipPaneInteractionController *createAndBindClipPaneInteractionController(QObject *parent = nullptr);
107108
Q_INVOKABLE sflow::NoteEditLayerInteractionController *createAndBindNoteEditLayerInteractionController(QObject *parent = nullptr);
109+
Q_INVOKABLE sflow::PhonemeSequenceInteractionController *createAndBindPhonemeSequenceInteractionController(QObject *parent = nullptr);
108110
Q_INVOKABLE sflow::TrackListInteractionController *createAndBindTrackListInteractionController(QObject *parent = nullptr);
109111
Q_INVOKABLE sflow::TrackListInteractionController *createAndBindTrackListInteractionControllerOfMaster(QObject *parent = nullptr);
110112

@@ -123,6 +125,7 @@ namespace VisualEditor {
123125

124126
Q_INVOKABLE sflow::RangeSequenceViewModel *getSingingClipPerTrackSequenceViewModel(dspx::Track *track) const;
125127
Q_INVOKABLE sflow::RangeSequenceViewModel *getNoteSequenceViewModel(dspx::SingingClip *clip) const;
128+
Q_INVOKABLE sflow::PointSequenceViewModel *getPhonemeSequenceViewModel(dspx::SingingClip *clip) const;
126129

127130

128131
private:

src/plugins/visualeditor/core/ProjectViewModelContext_p.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ namespace VisualEditor {
1313
class LabelViewModelContextData;
1414
class ClipViewModelContextData;
1515
class NoteViewModelContextData;
16+
class PhonemeViewModelContextData;
1617
class TrackViewModelContextData;
1718
class MasterTrackViewModelContextData;
1819

@@ -41,6 +42,7 @@ namespace VisualEditor {
4142
std::unique_ptr<LabelViewModelContextData> labelData;
4243
std::unique_ptr<ClipViewModelContextData> clipData;
4344
std::unique_ptr<NoteViewModelContextData> noteData;
45+
std::unique_ptr<PhonemeViewModelContextData> phonemeData;
4446
std::unique_ptr<TrackViewModelContextData> trackData;
4547
std::unique_ptr<MasterTrackViewModelContextData> masterTrackData;
4648
ParameterEditorContext *parameterEditorContext{};

0 commit comments

Comments
 (0)