case 1:
switch(m_status.value(m_jobs.at(index.row())))
{
- case EncodeThread::JobStatus_Enqueued:
+ case JobStatus_Enqueued:
return QVariant::fromValue<QString>(tr("Enqueued."));
break;
- case EncodeThread::JobStatus_Starting:
+ case JobStatus_Starting:
return QVariant::fromValue<QString>(tr("Starting..."));
break;
- case EncodeThread::JobStatus_Indexing:
+ case JobStatus_Indexing:
return QVariant::fromValue<QString>(tr("Indexing..."));
break;
- case EncodeThread::JobStatus_Running:
+ case JobStatus_Running:
return QVariant::fromValue<QString>(tr("Running..."));
break;
- case EncodeThread::JobStatus_Running_Pass1:
+ case JobStatus_Running_Pass1:
return QVariant::fromValue<QString>(tr("Running... (Pass 1)"));
break;
- case EncodeThread::JobStatus_Running_Pass2:
+ case JobStatus_Running_Pass2:
return QVariant::fromValue<QString>(tr("Running... (Pass 2)"));
break;
- case EncodeThread::JobStatus_Completed:
+ case JobStatus_Completed:
return QVariant::fromValue<QString>(tr("Completed."));
break;
- case EncodeThread::JobStatus_Failed:
+ case JobStatus_Failed:
return QVariant::fromValue<QString>(tr("Failed!"));
break;
- case EncodeThread::JobStatus_Pausing:
+ case JobStatus_Pausing:
return QVariant::fromValue<QString>(tr("Pausing..."));
break;
- case EncodeThread::JobStatus_Paused:
+ case JobStatus_Paused:
return QVariant::fromValue<QString>(tr("Paused."));
break;
- case EncodeThread::JobStatus_Resuming:
+ case JobStatus_Resuming:
return QVariant::fromValue<QString>(tr("Resuming..."));
break;
- case EncodeThread::JobStatus_Aborting:
+ case JobStatus_Aborting:
return QVariant::fromValue<QString>(tr("Aborting..."));
break;
- case EncodeThread::JobStatus_Aborted:
+ case JobStatus_Aborted:
return QVariant::fromValue<QString>(tr("Aborted!"));
break;
default:
{
switch(m_status.value(m_jobs.at(index.row())))
{
- case EncodeThread::JobStatus_Enqueued:
+ case JobStatus_Enqueued:
return QIcon(":/buttons/hourglass.png");
break;
- case EncodeThread::JobStatus_Starting:
+ case JobStatus_Starting:
return QIcon(":/buttons/lightning.png");
break;
- case EncodeThread::JobStatus_Indexing:
+ case JobStatus_Indexing:
return QIcon(":/buttons/find.png");
break;
- case EncodeThread::JobStatus_Running:
- case EncodeThread::JobStatus_Running_Pass1:
- case EncodeThread::JobStatus_Running_Pass2:
+ case JobStatus_Running:
+ case JobStatus_Running_Pass1:
+ case JobStatus_Running_Pass2:
return QIcon(":/buttons/play.png");
break;
- case EncodeThread::JobStatus_Completed:
+ case JobStatus_Completed:
return QIcon(":/buttons/accept.png");
break;
- case EncodeThread::JobStatus_Failed:
+ case JobStatus_Failed:
return QIcon(":/buttons/exclamation.png");
break;
- case EncodeThread::JobStatus_Pausing:
+ case JobStatus_Pausing:
return QIcon(":/buttons/clock_pause.png");
break;
- case EncodeThread::JobStatus_Paused:
+ case JobStatus_Paused:
return QIcon(":/buttons/suspended.png");
break;
- case EncodeThread::JobStatus_Resuming:
+ case JobStatus_Resuming:
return QIcon(":/buttons/clock_play.png");
break;
- case EncodeThread::JobStatus_Aborting:
+ case JobStatus_Aborting:
return QIcon(":/buttons/clock_stop.png");
break;
- case EncodeThread::JobStatus_Aborted:
+ case JobStatus_Aborted:
return QIcon(":/buttons/error.png");
break;
default:
beginInsertRows(QModelIndex(), m_jobs.count(), m_jobs.count());
m_jobs.append(id);
m_name.insert(id, jobName);
- m_status.insert(id, EncodeThread::JobStatus_Enqueued);
+ m_status.insert(id, JobStatus_Enqueued);
m_progress.insert(id, 0);
m_threads.insert(id, thread);
m_logFile.insert(id, logFile);
if(index.isValid() && index.row() >= 0 && index.row() < m_jobs.count())
{
QUuid id = m_jobs.at(index.row());
- if(m_status.value(id) == EncodeThread::JobStatus_Enqueued)
+ if(m_status.value(id) == JobStatus_Enqueued)
{
- updateStatus(id, EncodeThread::JobStatus_Starting);
+ updateStatus(id, JobStatus_Starting);
updateDetails(id, tr("Starting up, please wait..."));
m_threads.value(id)->start();
return true;
if(index.isValid() && index.row() >= 0 && index.row() < m_jobs.count())
{
QUuid id = m_jobs.at(index.row());
- EncodeThread::JobStatus status = m_status.value(id);
- if((status == EncodeThread::JobStatus_Indexing) || (status == EncodeThread::JobStatus_Running) ||
- (status == EncodeThread::JobStatus_Running_Pass1) || (status == EncodeThread::JobStatus_Running_Pass2))
+ JobStatus status = m_status.value(id);
+ if((status == JobStatus_Indexing) || (status == JobStatus_Running) ||
+ (status == JobStatus_Running_Pass1) || (status == JobStatus_Running_Pass2))
{
- updateStatus(id, EncodeThread::JobStatus_Pausing);
+ updateStatus(id, JobStatus_Pausing);
m_threads.value(id)->pauseJob();
return true;
}
if(index.isValid() && index.row() >= 0 && index.row() < m_jobs.count())
{
QUuid id = m_jobs.at(index.row());
- EncodeThread::JobStatus status = m_status.value(id);
- if(status == EncodeThread::JobStatus_Paused)
+ JobStatus status = m_status.value(id);
+ if(status == JobStatus_Paused)
{
- updateStatus(id, EncodeThread::JobStatus_Resuming);
+ updateStatus(id, JobStatus_Resuming);
m_threads.value(id)->resumeJob();
return true;
}
if(index.isValid() && index.row() >= 0 && index.row() < m_jobs.count())
{
QUuid id = m_jobs.at(index.row());
- if(m_status.value(id) == EncodeThread::JobStatus_Indexing || m_status.value(id) == EncodeThread::JobStatus_Running ||
- m_status.value(id) == EncodeThread::JobStatus_Running_Pass1 || EncodeThread::JobStatus_Running_Pass2)
+ if(m_status.value(id) == JobStatus_Indexing || m_status.value(id) == JobStatus_Running ||
+ m_status.value(id) == JobStatus_Running_Pass1 || JobStatus_Running_Pass2)
{
- updateStatus(id, EncodeThread::JobStatus_Aborting);
+ updateStatus(id, JobStatus_Aborting);
m_threads.value(id)->abortJob();
return true;
}
if(index.isValid() && index.row() >= 0 && index.row() < m_jobs.count())
{
QUuid id = m_jobs.at(index.row());
- if(m_status.value(id) == EncodeThread::JobStatus_Completed || m_status.value(id) == EncodeThread::JobStatus_Failed ||
- m_status.value(id) == EncodeThread::JobStatus_Aborted || m_status.value(id) == EncodeThread::JobStatus_Enqueued)
+ if(m_status.value(id) == JobStatus_Completed || m_status.value(id) == JobStatus_Failed ||
+ m_status.value(id) == JobStatus_Aborted || m_status.value(id) == JobStatus_Enqueued)
{
int idx = index.row();
QUuid id = m_jobs.at(idx);
return nullStr;
}
-EncodeThread::JobStatus JobListModel::getJobStatus(const QModelIndex &index)
+JobStatus JobListModel::getJobStatus(const QModelIndex &index)
{
if(index.isValid() && index.row() >= 0 && index.row() < m_jobs.count())
{
return m_status.value(m_jobs.at(index.row()));
}
- return static_cast<EncodeThread::JobStatus>(-1);
+ return static_cast<JobStatus>(-1);
}
unsigned int JobListModel::getJobProgress(const QModelIndex &index)
// Slots
///////////////////////////////////////////////////////////////////////////////
-void JobListModel::updateStatus(const QUuid &jobId, EncodeThread::JobStatus newStatus)
+void JobListModel::updateStatus(const QUuid &jobId, JobStatus newStatus)
{
int index = -1;
{
switch(newStatus)
{
- case EncodeThread::JobStatus_Completed:
+ case JobStatus_Completed:
PlaySound(MAKEINTRESOURCE(IDR_WAVE4), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC);
break;
- case EncodeThread::JobStatus_Aborted:
+ case JobStatus_Aborted:
PlaySound(MAKEINTRESOURCE(IDR_WAVE5), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC);
break;
- case EncodeThread::JobStatus_Failed:
+ case JobStatus_Failed:
PlaySound(MAKEINTRESOURCE(IDR_WAVE6), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC);
break;
}
LogFileModel *getLogFile(const QModelIndex &index);
const QString &getJobSourceFile(const QModelIndex &index);
const QString &getJobOutputFile(const QModelIndex &index);
- EncodeThread::JobStatus getJobStatus(const QModelIndex &index);
+ JobStatus getJobStatus(const QModelIndex &index);
unsigned int getJobProgress(const QModelIndex &index);
const OptionsModel *getJobOptions(const QModelIndex &index);
QModelIndex getJobIndexById(const QUuid &id);
QList<QUuid> m_jobs;
QMap<QUuid, QString> m_name;
QMap<QUuid, EncodeThread*> m_threads;
- QMap<QUuid, EncodeThread::JobStatus> m_status;
+ QMap<QUuid, JobStatus> m_status;
QMap<QUuid, unsigned int> m_progress;
QMap<QUuid, LogFileModel*> m_logFile;
QMap<QUuid, QString> m_details;
PreferencesModel *m_preferences;
public slots:
- void updateStatus(const QUuid &jobId, EncodeThread::JobStatus newStatus);
+ void updateStatus(const QUuid &jobId, JobStatus newStatus);
void updateProgress(const QUuid &jobId, unsigned int newProgress);
void updateDetails(const QUuid &jobId, const QString &details);
};
--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Simple x264 Launcher
+// Copyright (C) 2004-2013 LoRd_MuldeR <MuldeR2@GMX.de>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// http://www.gnu.org/licenses/gpl-2.0.txt
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+enum JobStatus
+{
+ JobStatus_Enqueued = 0,
+ JobStatus_Starting = 1,
+ JobStatus_Indexing = 2,
+ JobStatus_Running = 3,
+ JobStatus_Running_Pass1 = 4,
+ JobStatus_Running_Pass2 = 5,
+ JobStatus_Completed = 6,
+ JobStatus_Failed = 7,
+ JobStatus_Pausing = 8,
+ JobStatus_Paused = 9,
+ JobStatus_Resuming = 10,
+ JobStatus_Aborting = 11,
+ JobStatus_Aborted = 12,
+ JobStatus_Undefined = 666
+};
#pragma once
+#include "model_status.h"
+
#include <QThread>
#include <QUuid>
#include <QMutex>
Q_OBJECT
public:
- enum JobStatus
- {
- JobStatus_Enqueued = 0,
- JobStatus_Starting = 1,
- JobStatus_Indexing = 2,
- JobStatus_Running = 3,
- JobStatus_Running_Pass1 = 4,
- JobStatus_Running_Pass2 = 5,
- JobStatus_Completed = 6,
- JobStatus_Failed = 7,
- JobStatus_Pausing = 8,
- JobStatus_Paused = 9,
- JobStatus_Resuming = 10,
- JobStatus_Aborting = 11,
- JobStatus_Aborted = 12,
- JobStatus_Undefined = 666
- };
-
EncodeThread(const QString &sourceFileName, const QString &outputFileName, const OptionsModel *options, const QString &binDir, bool x264_x64, bool x264_10bit, bool avs2yuv_x64, int processPriroity);
~EncodeThread(void);
static void setPorcessPriority(void *processId, int priroity);
signals:
- void statusChanged(const QUuid &jobId, EncodeThread::JobStatus newStatus);
+ void statusChanged(const QUuid &jobId, JobStatus newStatus);
void progressChanged(const QUuid &jobId, unsigned int newProgress);
void messageLogged(const QUuid &jobId, const QString &text);
void detailsChanged(const QUuid &jobId, const QString &details);
#define VER_X264_MAJOR 2
#define VER_X264_MINOR 1
#define VER_X264_PATCH 5
-#define VER_X264_BUILD 494
+#define VER_X264_BUILD 497
#define VER_X264_MINIMUM_REV 2282
#define VER_X264_CURRENT_API 133
#include "model_preferences.h"
#include "model_recently.h"
#include "thread_avisynth.h"
+#include "thread_ipc.h"
+#include "thread_encode.h"
#include "taskbar7.h"
#include "win_addJob.h"
#include "win_preferences.h"
//Register meta types
qRegisterMetaType<QUuid>("QUuid");
qRegisterMetaType<QUuid>("DWORD");
- qRegisterMetaType<EncodeThread::JobStatus>("EncodeThread::JobStatus");
+ qRegisterMetaType<JobStatus>("EncodeThread::JobStatus");
//Load preferences
m_preferences = new PreferencesModel();
logView->actions().first()->setEnabled(false);
progressBar->setValue(0);
editDetails->clear();
- updateButtons(EncodeThread::JobStatus_Undefined);
- updateTaskbar(EncodeThread::JobStatus_Undefined, QIcon());
+ updateButtons(JobStatus_Undefined);
+ updateTaskbar(JobStatus_Undefined, QIcon());
}
progressBar->repaint();
{
for(int i = topLeft.row(); i <= bottomRight.row(); i++)
{
- EncodeThread::JobStatus status = m_jobList->getJobStatus(m_jobList->index(i, 0, QModelIndex()));
+ JobStatus status = m_jobList->getJobStatus(m_jobList->index(i, 0, QModelIndex()));
if(i == selected)
{
qDebug("Current job changed status!");
updateButtons(status);
updateTaskbar(status, m_jobList->data(m_jobList->index(i, 0, QModelIndex()), Qt::DecorationRole).value<QIcon>());
}
- if((status == EncodeThread::JobStatus_Completed) || (status == EncodeThread::JobStatus_Failed))
+ if((status == JobStatus_Completed) || (status == JobStatus_Failed))
{
if(m_preferences->autoRunNextJob()) QTimer::singleShot(0, this, SLOT(launchNextJob()));
if(m_preferences->shutdownComputer()) QTimer::singleShot(0, this, SLOT(shutdownComputer()));
for(int i = 0; i < rows; i++)
{
int currentIdx = (i + startIdx) % rows;
- EncodeThread::JobStatus status = m_jobList->getJobStatus(m_jobList->index(currentIdx, 0, QModelIndex()));
- if(status == EncodeThread::JobStatus_Enqueued)
+ JobStatus status = m_jobList->getJobStatus(m_jobList->index(currentIdx, 0, QModelIndex()));
+ if(status == JobStatus_Enqueued)
{
if(m_jobList->startJob(m_jobList->index(currentIdx, 0, QModelIndex())))
{
for(int i = 0; i < rows; i++)
{
- EncodeThread::JobStatus status = m_jobList->getJobStatus(m_jobList->index(i, 0, QModelIndex()));
- if(status != EncodeThread::JobStatus_Completed && status != EncodeThread::JobStatus_Aborted && status != EncodeThread::JobStatus_Failed)
+ JobStatus status = m_jobList->getJobStatus(m_jobList->index(i, 0, QModelIndex()));
+ if(status != JobStatus_Completed && status != JobStatus_Aborted && status != JobStatus_Failed)
{
count++;
}
for(int i = 0; i < rows; i++)
{
- EncodeThread::JobStatus status = m_jobList->getJobStatus(m_jobList->index(i, 0, QModelIndex()));
- if(status != EncodeThread::JobStatus_Completed && status != EncodeThread::JobStatus_Aborted && status != EncodeThread::JobStatus_Failed && status != EncodeThread::JobStatus_Enqueued)
+ JobStatus status = m_jobList->getJobStatus(m_jobList->index(i, 0, QModelIndex()));
+ if(status != JobStatus_Completed && status != JobStatus_Aborted && status != JobStatus_Failed && status != JobStatus_Enqueued)
{
count++;
}
/*
* Update all buttons with respect to current job status
*/
-void MainWindow::updateButtons(EncodeThread::JobStatus status)
+void MainWindow::updateButtons(JobStatus status)
{
qDebug("MainWindow::updateButtons(void)");
- buttonStartJob->setEnabled(status == EncodeThread::JobStatus_Enqueued);
- buttonAbortJob->setEnabled(status == EncodeThread::JobStatus_Indexing || status == EncodeThread::JobStatus_Running || status == EncodeThread::JobStatus_Running_Pass1 || status == EncodeThread::JobStatus_Running_Pass2 || status == EncodeThread::JobStatus_Paused);
- buttonPauseJob->setEnabled(status == EncodeThread::JobStatus_Indexing || status == EncodeThread::JobStatus_Running || status == EncodeThread::JobStatus_Paused || status == EncodeThread::JobStatus_Running_Pass1 || status == EncodeThread::JobStatus_Running_Pass2);
- buttonPauseJob->setChecked(status == EncodeThread::JobStatus_Paused || status == EncodeThread::JobStatus_Pausing);
+ buttonStartJob->setEnabled(status == JobStatus_Enqueued);
+ buttonAbortJob->setEnabled(status == JobStatus_Indexing || status == JobStatus_Running || status == JobStatus_Running_Pass1 || status == JobStatus_Running_Pass2 || status == JobStatus_Paused);
+ buttonPauseJob->setEnabled(status == JobStatus_Indexing || status == JobStatus_Running || status == JobStatus_Paused || status == JobStatus_Running_Pass1 || status == JobStatus_Running_Pass2);
+ buttonPauseJob->setChecked(status == JobStatus_Paused || status == JobStatus_Pausing);
- actionJob_Delete->setEnabled(status == EncodeThread::JobStatus_Completed || status == EncodeThread::JobStatus_Aborted || status == EncodeThread::JobStatus_Failed || status == EncodeThread::JobStatus_Enqueued);
- actionJob_Restart->setEnabled(status == EncodeThread::JobStatus_Completed || status == EncodeThread::JobStatus_Aborted || status == EncodeThread::JobStatus_Failed || status == EncodeThread::JobStatus_Enqueued);
- actionJob_Browse->setEnabled(status == EncodeThread::JobStatus_Completed);
+ actionJob_Delete->setEnabled(status == JobStatus_Completed || status == JobStatus_Aborted || status == JobStatus_Failed || status == JobStatus_Enqueued);
+ actionJob_Restart->setEnabled(status == JobStatus_Completed || status == JobStatus_Aborted || status == JobStatus_Failed || status == JobStatus_Enqueued);
+ actionJob_Browse->setEnabled(status == JobStatus_Completed);
actionJob_Start->setEnabled(buttonStartJob->isEnabled());
actionJob_Abort->setEnabled(buttonAbortJob->isEnabled());
actionJob_Pause->setEnabled(buttonPauseJob->isEnabled());
actionJob_Pause->setChecked(buttonPauseJob->isChecked());
- editDetails->setEnabled(status != EncodeThread::JobStatus_Paused);
+ editDetails->setEnabled(status != JobStatus_Paused);
}
/*
* Update the taskbar with current job status
*/
-void MainWindow::updateTaskbar(EncodeThread::JobStatus status, const QIcon &icon)
+void MainWindow::updateTaskbar(JobStatus status, const QIcon &icon)
{
qDebug("MainWindow::updateTaskbar(void)");
switch(status)
{
- case EncodeThread::JobStatus_Undefined:
+ case JobStatus_Undefined:
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarNoState);
break;
- case EncodeThread::JobStatus_Aborting:
- case EncodeThread::JobStatus_Starting:
- case EncodeThread::JobStatus_Pausing:
- case EncodeThread::JobStatus_Resuming:
+ case JobStatus_Aborting:
+ case JobStatus_Starting:
+ case JobStatus_Pausing:
+ case JobStatus_Resuming:
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarIndeterminateState);
break;
- case EncodeThread::JobStatus_Aborted:
- case EncodeThread::JobStatus_Failed:
+ case JobStatus_Aborted:
+ case JobStatus_Failed:
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarErrorState);
break;
- case EncodeThread::JobStatus_Paused:
+ case JobStatus_Paused:
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarPausedState);
break;
default:
switch(status)
{
- case EncodeThread::JobStatus_Aborting:
- case EncodeThread::JobStatus_Starting:
- case EncodeThread::JobStatus_Pausing:
- case EncodeThread::JobStatus_Resuming:
+ case JobStatus_Aborting:
+ case JobStatus_Starting:
+ case JobStatus_Pausing:
+ case JobStatus_Resuming:
break;
default:
WinSevenTaskbar::setTaskbarProgress(this, progressBar->value(), progressBar->maximum());
#pragma once
#include "uic_win_main.h"
-#include "thread_ipc.h"
-#include "thread_encode.h"
+
+#include "global.h"
+#include "model_status.h"
class JobListModel;
class OptionsModel;
class QLibrary;
class PreferencesModel;
class RecentlyUsed;
+class IPCThread;
class MainWindow: public QMainWindow, private Ui::MainWindow
{
bool createJobMultiple(const QStringList &filePathIn);
bool appendJob(const QString &sourceFileName, const QString &outputFileName, OptionsModel *options, const bool runImmediately);
- void updateButtons(EncodeThread::JobStatus status);
- void updateTaskbar(EncodeThread::JobStatus status, const QIcon &icon);
+ void updateButtons(JobStatus status);
+ void updateTaskbar(JobStatus status, const QIcon &icon);
unsigned int countPendingJobs(void);
unsigned int countRunningJobs(void);
<ClInclude Include="src\model_options.h" />
<ClInclude Include="src\model_preferences.h" />
<ClInclude Include="src\model_recently.h" />
+ <ClInclude Include="src\model_status.h" />
<ClInclude Include="src\targetver.h" />
<ClInclude Include="src\taskbar7.h" />
<CustomBuild Include="src\thread_ipc.h">
<ClInclude Include="src\model_recently.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="src\model_status.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\main.cpp">