aboutsummaryrefslogtreecommitdiffstats
path: root/us_maker_edition/src/screens
diff options
context:
space:
mode:
authordavidus01 <davidus01@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-08-06 22:36:43 +0000
committerdavidus01 <davidus01@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-08-06 22:36:43 +0000
commit2c701447a512c2d8c5bcea6fa8ced67a9f22478c (patch)
treeae7c0792ce7fa3589611dd4978b1545cf99d8384 /us_maker_edition/src/screens
parentdebbdd3c1cfe9ff74c02a282ade69dd0dcbbc2a1 (diff)
downloadusdx-2c701447a512c2d8c5bcea6fa8ced67a9f22478c.tar.gz
usdx-2c701447a512c2d8c5bcea6fa8ced67a9f22478c.tar.xz
usdx-2c701447a512c2d8c5bcea6fa8ced67a9f22478c.zip
editor: buttons (play, play with midi, midi, undo, NextSentence, PreviousSentence)
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@2608 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'us_maker_edition/src/screens')
-rw-r--r--us_maker_edition/src/screens/UScreenEditSub.pas120
1 files changed, 118 insertions, 2 deletions
diff --git a/us_maker_edition/src/screens/UScreenEditSub.pas b/us_maker_edition/src/screens/UScreenEditSub.pas
index aab5d9bd..920b8172 100644
--- a/us_maker_edition/src/screens/UScreenEditSub.pas
+++ b/us_maker_edition/src/screens/UScreenEditSub.pas
@@ -117,7 +117,7 @@ type
LastPressedMouseType: integer;
LastPressedNote: integer;
PressedNoteId: integer;
-
+
TextPosition: integer;
TextEditMode: boolean;
TitleEditMode: boolean;
@@ -198,6 +198,8 @@ type
VolumeAudio: array of UTF8String;
VolumeMidi: array of UTF8String;
VolumeClick: array of UTF8String;
+ // control buttons
+ UndoButtonId: integer;
// background image & video preview
BackgroundImageId: integer;
Empty: array of UTF8String; //temporary variable to initialize slide - todo change
@@ -211,7 +213,7 @@ type
LastX: integer;
LastY: integer;
Xmouse: integer;
-
+
resize_note_left: boolean;
resize_note_right: boolean;
move_note: boolean;
@@ -848,6 +850,110 @@ begin
TextEditMode := true;
end;
+ if Interaction = 17 then //Only Play
+ begin
+ // Play Sentence
+ Click := true;
+ AudioPlayback.Stop;
+ PlayVideo := false;
+ StopVideoPreview;
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Color := 1;
+ CurrentNote := 0;
+ R := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].Note[0].Start);
+ if R <= AudioPlayback.Length then
+ begin
+ AudioPlayback.Position := R;
+ PlayStopTime := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].End_);
+ PlaySentence := true;
+ AudioPlayback.SetVolume(SelectsS[VolumeAudioSlideId].SelectedOption / 100);
+ AudioPlayback.Play;
+ LastClick := -100;
+ end;
+ Text[TextDebug].Text := Language.Translate('INFO_PLAY_SENTENCE');
+ end;
+
+ if Interaction = 18 then //Play with midi
+ begin
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Color := 1;
+ CurrentNote := 0;
+ PlaySentenceMidi := true;
+ PlayVideo := false;
+ StopVideoPreview;
+ MidiTime := USTime.GetTime;
+ MidiStart := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].Note[0].Start);
+ MidiStop := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].End_);
+ LastClick := -100;
+
+ PlaySentence := true;
+ Click := true;
+ AudioPlayback.Stop;
+ AudioPlayback.Position := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].Note[0].Start)+0{-0.10};
+ PlayStopTime := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].End_)+0;
+ AudioPlayback.SetVolume(SelectsS[VolumeAudioSlideId].SelectedOption / 100);
+ AudioPlayback.Play;
+ LastClick := -100;
+ Text[TextDebug].Text := Language.Translate('INFO_PLAY_SENTENCE');
+ end;
+
+ if Interaction = 19 then //Play midi
+ begin
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].Color := 1;
+ CurrentNote := 0;
+ PlaySentenceMidi := true;
+ PlayVideo := false;
+ StopVideoPreview;
+ MidiTime := USTime.GetTime;
+ MidiStart := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].Note[0].Start);
+ MidiStop := GetTimeFromBeat(Lines[0].Line[Lines[0].Current].End_);
+
+ LastClick := -100;
+ Text[TextDebug].Text := Language.Translate('INFO_PLAY_SENTENCE');
+ end;
+
+ if Interaction = 20 then //previous sequence
+ begin
+ PreviousSentence;
+ end;
+
+ if Interaction = 21 then //next sequence
+ begin
+ NextSentence;
+ end;
+
+ if Interaction = 22 then //undo
+ begin
+ CopyFromUndo;
+ GoldenRec.KillAll;
+ Text[TextDebug].Text := Language.Translate('INFO_UNDO');
+ ShowInteractiveBackground;
+ end;
+
+ if Interaction = 23 then //golden note
+ begin
+ CopyToUndo;
+ if (Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType = ntGolden) then
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType := ntNormal
+ else
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType := ntGolden;
+ GoldenRec.KillAll;
+ Exit;
+ end;
+
+ if Interaction = 24 then //freestyle note
+ begin
+ CopyToUndo;
+ if (Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType = ntFreestyle) then
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType := ntNormal
+ else
+ Lines[0].Line[Lines[0].Current].Note[CurrentNote].NoteType := ntFreestyle;
+ GoldenRec.KillAll;
+
+ // update lyrics
+ Lyric.AddLine(Lines[0].Current);
+ Lyric.Selected := CurrentNote;
+ Exit;
+ end;
+
for i := 0 to Lines[0].High do
begin
if Interaction = InteractiveLineId[i] then
@@ -2773,6 +2879,16 @@ begin
Statics[playerIconId[2]].Reflection := false;
Statics[playerIconId[2]].Visible := false;
+ // control buttons
+ AddButton(Theme.EditSub.PlayOnly);
+ AddButton(Theme.EditSub.PlayWithNote);
+ AddButton(Theme.EditSub.PlayNote);
+ AddButton(Theme.EditSub.previousseq);
+ AddButton(Theme.EditSub.nextseq);
+ UndoButtonId := AddButton(Theme.EditSub.undo);
+ AddButton(Theme.EditSub.gold);
+ AddButton(Theme.EditSub.freestyle);
+
// debug
TextDebug := AddText(30, 550, 0, 27, 0, 0, 0, '');
// in notes place -> for move notes by mouse