//Function that fires away a convert with handbreak private bool ExecuteQueue(long nQueueID) { int nItem = ItemByQueueID(nQueueID); if (nItem == -1) { return(false); } QueueStruct aStruct = (QueueStruct)aQueue[nItem]; //We don't run twice... if (aStruct.nStatus == QueueStatus.RUNNING) { return(false); } //Setting the parameters string baseFolder = MOTR_Settings.GetGlobalApplicationPath("tools"); string sExec = MOTR_Settings.GetExecuteToolPath("handbreak"); string sParams = "--optimize --preset \"" + aStruct.sHandbrakeProfile + "\" --input \"" + aStruct.sPath + aStruct.sSource + "\" --output \"" + aStruct.sPath + aStruct.sDestination + "\""; aStruct.dateRunning = DateTime.Now; aStruct.nStatus = QueueStatus.RUNNING; //extension = extension.Substring(extension.Length - 4); string sExtension = aStruct.sSource.Substring(aStruct.sSource.Length - 4); if (sExtension.ToUpper() == ".RAR") { sExec = MOTR_Settings.GetExecuteToolPath("unrar"); sParams = "x -y -p- " + aStruct.sPath + aStruct.sSource; } //Console.WriteLine("Exec: " + sExec + " " + sParams); //Now start the background process, if it fails change status of the queue if (!StartBackgroundProcess(sExec, sParams, aStruct.sPath, aStruct.nQueueID)) { aStruct.nStatus = QueueStatus.FINISHEDANDFAIL; aStruct.sETA = "Background could not be executed, please update tools"; } //Update the current item aQueue.RemoveAt(nItem); aQueue.Insert(nItem, aStruct); return(true); }