Bug fix for Qt TAS editor when in input record mode. History tree display cannot have GUI changes done in emulation thread.
This commit is contained in:
parent
3b3404af55
commit
9c8efa165e
|
@ -23,6 +23,7 @@ History - History of movie modifications
|
|||
|
||||
#include "fceu.h"
|
||||
#include "driver.h"
|
||||
#include "Qt/ConsoleWindow.h"
|
||||
#include "Qt/TasEditor/taseditor_project.h"
|
||||
#include "Qt/TasEditor/TasEditorWindow.h"
|
||||
|
||||
|
@ -113,7 +114,7 @@ HISTORY::HISTORY()
|
|||
{
|
||||
}
|
||||
|
||||
void HISTORY::init()
|
||||
void HISTORY::init(void)
|
||||
{
|
||||
// prepare the history listview
|
||||
//hwndHistoryList = GetDlgItem(taseditorWindow.hwndTASEditor, IDC_HISTORYLIST);
|
||||
|
@ -826,14 +827,18 @@ void HISTORY::registerRecording(int frameOfChange, uint32 joypadDifferenceBits)
|
|||
// add info if Commands were affected
|
||||
uint32 current_mask = 1;
|
||||
if ((snap->recordedJoypadDifferenceBits & current_mask))
|
||||
{
|
||||
strcat(snap->description, joypadCaptions[0]);
|
||||
}
|
||||
// add info which joypads were affected
|
||||
int num = joysticksPerFrame[snap->inputlog.inputType];
|
||||
current_mask <<= 1;
|
||||
for (int i = 0; i < num; ++i)
|
||||
{
|
||||
if ((snap->recordedJoypadDifferenceBits & current_mask))
|
||||
{
|
||||
strcat(snap->description, joypadCaptions[i + 1]);
|
||||
}
|
||||
current_mask <<= 1;
|
||||
}
|
||||
// add upper and lower frame to description
|
||||
|
@ -861,7 +866,9 @@ void HISTORY::registerRecording(int frameOfChange, uint32 joypadDifferenceBits)
|
|||
// add info if Commands were affected
|
||||
uint32 current_mask = 1;
|
||||
if ((snap.recordedJoypadDifferenceBits & current_mask))
|
||||
{
|
||||
strcat(snap.description, joypadCaptions[0]);
|
||||
}
|
||||
// add info which joypads were affected
|
||||
int num = joysticksPerFrame[snap.inputlog.inputType];
|
||||
current_mask <<= 1;
|
||||
|
@ -1189,8 +1196,13 @@ void HISTORY::handleSingleClick(int row_index)
|
|||
}
|
||||
}
|
||||
|
||||
void HISTORY::updateList()
|
||||
void HISTORY::updateList(void)
|
||||
{
|
||||
// Emulation thread cannot update graphics
|
||||
if ( QThread::currentThread() == consoleWindow->emulatorThread )
|
||||
{
|
||||
return;
|
||||
}
|
||||
//update the number of items in the history list
|
||||
int currLVItemCount = tasWin->histTree->topLevelItemCount();
|
||||
|
||||
|
@ -1200,8 +1212,13 @@ void HISTORY::updateList()
|
|||
}
|
||||
}
|
||||
|
||||
void HISTORY::redrawList()
|
||||
void HISTORY::redrawList(void)
|
||||
{
|
||||
// Emulation thread cannot update graphics
|
||||
if ( QThread::currentThread() == consoleWindow->emulatorThread )
|
||||
{
|
||||
return;
|
||||
}
|
||||
tasWin->updateHistoryItems();
|
||||
//ListView_SetItemState(hwndHistoryList, historyCursorPos, LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED);
|
||||
//ListView_EnsureVisible(hwndHistoryList, historyCursorPos, FALSE);
|
||||
|
|
|
@ -269,7 +269,7 @@ void RECORDER::recheckRecordingRadioButtons()
|
|||
}
|
||||
}
|
||||
|
||||
void RECORDER::recordInput()
|
||||
void RECORDER::recordInput(void)
|
||||
{
|
||||
bool changes_made = false;
|
||||
uint32 joypad_diff_bits = 0;
|
||||
|
@ -280,10 +280,14 @@ void RECORDER::recordInput()
|
|||
oldJoyData[i] = history->getCurrentSnapshot().inputlog.getJoystickData(currFrameCounter, i);
|
||||
|
||||
if (!taseditorConfig->recordingUsePattern /*|| editor.patterns[oldCurrentPattern][patternOffset]*/)
|
||||
{
|
||||
newJoyData[i] = currMovieData.records[currFrameCounter].joysticks[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
newJoyData[i] = 0; // blank
|
||||
}
|
||||
}
|
||||
if (taseditorConfig->recordingUsePattern)
|
||||
{
|
||||
// postpone incrementing pattern_offset to the end of the frame (when lagFlag will be known)
|
||||
|
|
Loading…
Reference in New Issue