mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-26 15:50:00 -06:00
make the camera settings dialog not suck balls
This commit is contained in:
@ -169,9 +169,9 @@ void CameraManager::deInit()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CameraManager::start()
|
void CameraManager::start()
|
||||||
{printf("[%d] [%d] START\n", num, startNum);
|
{
|
||||||
startNum++;
|
if (startNum == 1) return;
|
||||||
if (startNum > 1) return;
|
startNum = 1;
|
||||||
|
|
||||||
if (inputType == 2)
|
if (inputType == 2)
|
||||||
{
|
{
|
||||||
@ -180,9 +180,9 @@ void CameraManager::start()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CameraManager::stop()
|
void CameraManager::stop()
|
||||||
{printf("[%d] [%d] STOP\n", num, startNum-1);
|
{
|
||||||
startNum--;
|
if (startNum == 0) return;
|
||||||
if (startNum > 0) return;
|
startNum = 0;
|
||||||
|
|
||||||
if (inputType == 2)
|
if (inputType == 2)
|
||||||
{
|
{
|
||||||
@ -190,6 +190,11 @@ void CameraManager::stop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CameraManager::isStarted()
|
||||||
|
{
|
||||||
|
return startNum != 0;
|
||||||
|
}
|
||||||
|
|
||||||
void CameraManager::camStart()
|
void CameraManager::camStart()
|
||||||
{
|
{
|
||||||
camDevice->start();
|
camDevice->start();
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
|
|
||||||
void start();
|
void start();
|
||||||
void stop();
|
void stop();
|
||||||
|
bool isStarted();
|
||||||
|
|
||||||
void captureFrame(u32* frame, int width, int height, bool yuv);
|
void captureFrame(u32* frame, int width, int height, bool yuv);
|
||||||
|
|
||||||
|
@ -154,8 +154,10 @@ void CameraSettingsDialog::on_cbCameraSel_currentIndexChanged(int id)
|
|||||||
|
|
||||||
currentId = id;
|
currentId = id;
|
||||||
currentCfg = &Config::Camera[id];
|
currentCfg = &Config::Camera[id];
|
||||||
currentCam = camManager[id];
|
//currentCam = camManager[id];
|
||||||
|
currentCam = nullptr;
|
||||||
populateCamControls(id);
|
populateCamControls(id);
|
||||||
|
currentCam = camManager[id];
|
||||||
previewPanel->setCurrentCam(currentCam);
|
previewPanel->setCurrentCam(currentCam);
|
||||||
|
|
||||||
currentCam->start();
|
currentCam->start();
|
||||||
|
@ -71,7 +71,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
currentDlg = new CameraSettingsDialog(parent);
|
currentDlg = new CameraSettingsDialog(parent);
|
||||||
currentDlg->show();
|
currentDlg->open();
|
||||||
return currentDlg;
|
return currentDlg;
|
||||||
}
|
}
|
||||||
static void closeDlg()
|
static void closeDlg()
|
||||||
|
@ -118,6 +118,7 @@ u32 micWavLength;
|
|||||||
s16* micWavBuffer;
|
s16* micWavBuffer;
|
||||||
|
|
||||||
CameraManager* camManager[2];
|
CameraManager* camManager[2];
|
||||||
|
bool camStarted[2];
|
||||||
|
|
||||||
const struct { int id; float ratio; const char* label; } aspectRatios[] =
|
const struct { int id; float ratio; const char* label; } aspectRatios[] =
|
||||||
{
|
{
|
||||||
@ -2805,8 +2806,23 @@ void MainWindow::onOpenVideoSettings()
|
|||||||
|
|
||||||
void MainWindow::onOpenCameraSettings()
|
void MainWindow::onOpenCameraSettings()
|
||||||
{
|
{
|
||||||
|
emuThread->emuPause();
|
||||||
|
|
||||||
|
camStarted[0] = camManager[0]->isStarted();
|
||||||
|
camStarted[1] = camManager[1]->isStarted();
|
||||||
|
if (camStarted[0]) camManager[0]->stop();
|
||||||
|
if (camStarted[1]) camManager[1]->stop();
|
||||||
|
|
||||||
CameraSettingsDialog* dlg = CameraSettingsDialog::openDlg(this);
|
CameraSettingsDialog* dlg = CameraSettingsDialog::openDlg(this);
|
||||||
//connect(dlg, &CameraSettingsDialog::updateCameraSettings, this, &MainWindow::onUpdateCameraSettings);
|
connect(dlg, &CameraSettingsDialog::finished, this, &MainWindow::onCameraSettingsFinished);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::onCameraSettingsFinished(int res)
|
||||||
|
{
|
||||||
|
if (camStarted[0]) camManager[0]->start();
|
||||||
|
if (camStarted[1]) camManager[1]->start();
|
||||||
|
|
||||||
|
emuThread->emuUnpause();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::onOpenAudioSettings()
|
void MainWindow::onOpenAudioSettings()
|
||||||
@ -3257,6 +3273,8 @@ int main(int argc, char** argv)
|
|||||||
micExtBufferWritePos = 0;
|
micExtBufferWritePos = 0;
|
||||||
micWavBuffer = nullptr;
|
micWavBuffer = nullptr;
|
||||||
|
|
||||||
|
camStarted[0] = false;
|
||||||
|
camStarted[1] = false;
|
||||||
camManager[0] = new CameraManager(0, 640, 480, true);
|
camManager[0] = new CameraManager(0, 640, 480, true);
|
||||||
camManager[1] = new CameraManager(1, 640, 480, true);
|
camManager[1] = new CameraManager(1, 640, 480, true);
|
||||||
|
|
||||||
|
@ -267,11 +267,12 @@ private slots:
|
|||||||
void onInputConfigFinished(int res);
|
void onInputConfigFinished(int res);
|
||||||
void onOpenVideoSettings();
|
void onOpenVideoSettings();
|
||||||
void onOpenCameraSettings();
|
void onOpenCameraSettings();
|
||||||
|
void onCameraSettingsFinished(int res);
|
||||||
void onOpenAudioSettings();
|
void onOpenAudioSettings();
|
||||||
void onOpenFirmwareSettings();
|
|
||||||
void onOpenPathSettings();
|
|
||||||
void onUpdateAudioSettings();
|
void onUpdateAudioSettings();
|
||||||
void onAudioSettingsFinished(int res);
|
void onAudioSettingsFinished(int res);
|
||||||
|
void onOpenFirmwareSettings();
|
||||||
|
void onOpenPathSettings();
|
||||||
void onOpenMPSettings();
|
void onOpenMPSettings();
|
||||||
void onMPSettingsFinished(int res);
|
void onMPSettingsFinished(int res);
|
||||||
void onOpenWifiSettings();
|
void onOpenWifiSettings();
|
||||||
|
Reference in New Issue
Block a user