forked from mia/Aegisub
Finished keyframe support, although not tested too much
Originally committed to SVN as r578.
This commit is contained in:
parent
90d7d02926
commit
2f9a086a22
3 changed files with 11 additions and 1 deletions
|
@ -33,6 +33,7 @@ Please visit http://aegisub.net to download latest version
|
||||||
- Renaming a style will now ask you if you want to rename all instances of it on the script. (AMZ)
|
- Renaming a style will now ask you if you want to rename all instances of it on the script. (AMZ)
|
||||||
- Style name collisions (when moving from storage, creating or renaming) will now prompt the user before performing the action. (AMZ)
|
- Style name collisions (when moving from storage, creating or renaming) will now prompt the user before performing the action. (AMZ)
|
||||||
- Added global hotkey for Video Play (default Ctrl+P). (AMZ)
|
- Added global hotkey for Video Play (default Ctrl+P). (AMZ)
|
||||||
|
- Added support to save and load keyframe list files. (AMZ)
|
||||||
|
|
||||||
|
|
||||||
= 1.10 beta - 2006.08.07 ===========================
|
= 1.10 beta - 2006.08.07 ===========================
|
||||||
|
|
|
@ -772,6 +772,7 @@ void FrameMain::SynchronizeProject(bool fromSubs) {
|
||||||
subs->GetScriptInfo(_T("Video Zoom")).ToLong(&videoZoom);
|
subs->GetScriptInfo(_T("Video Zoom")).ToLong(&videoZoom);
|
||||||
wxString curSubsVideo = DecodeRelativePath(subs->GetScriptInfo(_T("Video File")),AssFile::top->filename);
|
wxString curSubsVideo = DecodeRelativePath(subs->GetScriptInfo(_T("Video File")),AssFile::top->filename);
|
||||||
wxString curSubsVFR = DecodeRelativePath(subs->GetScriptInfo(_T("VFR File")),AssFile::top->filename);
|
wxString curSubsVFR = DecodeRelativePath(subs->GetScriptInfo(_T("VFR File")),AssFile::top->filename);
|
||||||
|
wxString curSubsKeyframes = DecodeRelativePath(subs->GetScriptInfo(_T("Keyframes File")),AssFile::top->filename);
|
||||||
wxString curSubsAudio = DecodeRelativePath(subs->GetScriptInfo(_T("Audio File")),AssFile::top->filename);
|
wxString curSubsAudio = DecodeRelativePath(subs->GetScriptInfo(_T("Audio File")),AssFile::top->filename);
|
||||||
wxString AutoScriptString = subs->GetScriptInfo(_T("Automation Scripts"));
|
wxString AutoScriptString = subs->GetScriptInfo(_T("Automation Scripts"));
|
||||||
|
|
||||||
|
@ -808,7 +809,7 @@ void FrameMain::SynchronizeProject(bool fromSubs) {
|
||||||
// Check if there is anything to change
|
// Check if there is anything to change
|
||||||
int autoLoadMode = Options.AsInt(_T("Autoload linked files"));
|
int autoLoadMode = Options.AsInt(_T("Autoload linked files"));
|
||||||
bool hasToLoad = false;
|
bool hasToLoad = false;
|
||||||
if (curSubsAudio != audioBox->audioName || curSubsVFR != VFR_Output.GetFilename() || curSubsVideo != videoBox->videoDisplay->videoName) {
|
if (curSubsAudio != audioBox->audioName || curSubsVFR != VFR_Output.GetFilename() || curSubsVideo != videoBox->videoDisplay->videoName || curSubsKeyframes != videoBox->videoDisplay->GetKeyFramesName()) {
|
||||||
hasToLoad = true;
|
hasToLoad = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -838,6 +839,9 @@ void FrameMain::SynchronizeProject(bool fromSubs) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Keyframes
|
||||||
|
LoadKeyframes(curSubsKeyframes);
|
||||||
|
|
||||||
// Audio
|
// Audio
|
||||||
if (curSubsAudio != audioBox->audioName) {
|
if (curSubsAudio != audioBox->audioName) {
|
||||||
if (curSubsAudio == _T("?video")) LoadAudio(_T(""),true);
|
if (curSubsAudio == _T("?video")) LoadAudio(_T(""),true);
|
||||||
|
@ -873,6 +877,7 @@ void FrameMain::SynchronizeProject(bool fromSubs) {
|
||||||
subs->SetScriptInfo(_T("Video Zoom"),zoom);
|
subs->SetScriptInfo(_T("Video Zoom"),zoom);
|
||||||
subs->SetScriptInfo(_T("Video Position"),seekpos);
|
subs->SetScriptInfo(_T("Video Position"),seekpos);
|
||||||
subs->SetScriptInfo(_T("VFR File"),MakeRelativePath(VFR_Output.GetFilename(),AssFile::top->filename));
|
subs->SetScriptInfo(_T("VFR File"),MakeRelativePath(VFR_Output.GetFilename(),AssFile::top->filename));
|
||||||
|
subs->SetScriptInfo(_T("Keyframes File"),MakeRelativePath(videoBox->videoDisplay->GetKeyFramesName(),AssFile::top->filename));
|
||||||
|
|
||||||
// Create list of Automation scripts
|
// Create list of Automation scripts
|
||||||
wxString scripts;
|
wxString scripts;
|
||||||
|
@ -1031,6 +1036,7 @@ void FrameMain::LoadKeyframes(wxString filename) {
|
||||||
|
|
||||||
// Set keyframes
|
// Set keyframes
|
||||||
videoBox->videoDisplay->SetOverKeyFrames(keyFrames);
|
videoBox->videoDisplay->SetOverKeyFrames(keyFrames);
|
||||||
|
videoBox->videoDisplay->SetKeyFramesName(filename);
|
||||||
|
|
||||||
// Set FPS
|
// Set FPS
|
||||||
if (!videoBox->videoDisplay->loaded) {
|
if (!videoBox->videoDisplay->loaded) {
|
||||||
|
|
|
@ -75,6 +75,7 @@ private:
|
||||||
bool overKeyFramesLoaded;
|
bool overKeyFramesLoaded;
|
||||||
wxArrayInt KeyFrames;
|
wxArrayInt KeyFrames;
|
||||||
wxArrayInt overKeyFrames;
|
wxArrayInt overKeyFrames;
|
||||||
|
wxString keyFramesFilename;
|
||||||
|
|
||||||
clock_t PlayTime;
|
clock_t PlayTime;
|
||||||
clock_t StartTime;
|
clock_t StartTime;
|
||||||
|
@ -108,6 +109,8 @@ public:
|
||||||
void CloseOverKeyFrames();
|
void CloseOverKeyFrames();
|
||||||
bool OverKeyFramesLoaded();
|
bool OverKeyFramesLoaded();
|
||||||
bool KeyFramesLoaded();
|
bool KeyFramesLoaded();
|
||||||
|
wxString GetKeyFramesName() { return keyFramesFilename; }
|
||||||
|
void SetKeyFramesName(wxString name) { keyFramesFilename = name; }
|
||||||
|
|
||||||
VideoProvider *provider;
|
VideoProvider *provider;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue