public void SearchForSourceAudioFiles(AudioLibrary audioLibrary) { Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch(); ConsolePrintHelpers.PrintWhiteText(" Searching For Source Audio Files...\n\n\n"); _ActiveSearches.Clear(); _SearchRowsRemaining = _LoadSheet.GetAODLoadSheetRows.Count; ConsolePrintHelpers.PrintWhiteText(" Search Pass 1...\n\n"); PrintSearchStatsHeaders(); Search_Pass1(audioLibrary); ConsolePrintHelpers.PrintWhiteText("\n\n Search Pass 2...\n\n"); PrintSearchStatsHeaders(); Search_Pass2(audioLibrary); ConsolePrintHelpers.PrintWhiteText("\n\n Search Pass 3...\n\n"); PrintSearchStatsHeaders(); Search_Pass3(audioLibrary); ConsolePrintHelpers.PrintDurationAndWait(stopwatch, "Search"); }
private void PrepareEncodingHistory() { Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch(); ConsolePrintHelpers.PrintWhiteText(" Preparing Encoding History..."); _History = new AudioEncoderHistory(this); _History.ReadHistoryFromFiles(); ConsolePrintHelpers.PrintDuration(stopwatch, "Preparing History"); Console.WriteLine(); _History.PrintHistoryStats(); ConsolePrintHelpers.Wait(); }
public void ReadLoadSheet() { Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch(); ConsolePrintHelpers.PrintWhiteText(" Reading AOD Loadsheet...\n\n\n"); PrepareLoadSheetBackup(); _AlreadyEncodedCount = 0; _IsRowAlreadyEncoded = false; _IsRowAltCycleNotValid = false; List <int> incompleteAODLoadSheetRowNums = new List <int>(); List <string> rowCells; IWorkbook workbook = ReadWorkBook(); ISheet sheet = workbook.GetSheet(_Config.AODLoadSheetWorkSheetName); ConsolePrintHelpers.PrintWhiteText(" Total Row Count : "); int cursorLeft = Console.CursorLeft; foreach (IRow row in sheet) { Console.CursorLeft = cursorLeft; ConsolePrintHelpers.PrintCyanText(row.RowNum.ToString()); rowCells = ReadLoadSheetRow(row); if (_Config.AODLoadSheetColumnNumsRead.Length == rowCells.Count) //check that we successfully extracted text in all cells that we want for this row (if it was already 'Encoded', it will not be added) { if (row.RowNum == 0) { _AODLoadSheetHeaderRow = new List <string>(rowCells); } else if (_IsRowAlreadyEncoded == false && _IsRowAltCycleNotValid == false) { _AODLoadSheetRows.Add(new AODLoadSheetRow(row.RowNum, rowCells, _Config)); } else if (_IsRowAlreadyEncoded == false && _IsRowAltCycleNotValid == true) { incompleteAODLoadSheetRowNums.Add(row.RowNum); //Invalid alt. cycle code } } else if (rowCells.Count > _Config.AODLoadSheetOptionalColumnNumsRead.Count() && _IsRowAlreadyEncoded == false) { //Missing column data in loadsheet row (we skip this row as it is incomplete)... Must have text in one of the columns not including the optional cells incompleteAODLoadSheetRowNums.Add(row.RowNum); } _IsRowAlreadyEncoded = false; _IsRowAltCycleNotValid = false; } workbook.Close(); ConsolePrintHelpers.PrintWhiteText("\n Rows Already Encoded : "); ConsolePrintHelpers.PrintCyanText(_AlreadyEncodedCount.ToString()); ConsolePrintHelpers.PrintWhiteText("\n Rows Not Yet Encoded : "); ConsolePrintHelpers.PrintCyanText(_AODLoadSheetRows.Count.ToString()); ConsolePrintHelpers.PrintWhiteText("\n Incomplete Rows : "); ConsolePrintHelpers.PrintCyanText(incompleteAODLoadSheetRowNums.Count.ToString()); Console.WriteLine("\n\n"); UpdateLoadSheetIncompleteRows(incompleteAODLoadSheetRowNums); ConsolePrintHelpers.PrintDurationAndWait(stopwatch, "Read Loadsheet"); GC.Collect(); }
public void EncodeAudioFiles() { if (!_IsQueueBuilt) { BuildEncodingQueue(); } Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch(); ConsolePrintHelpers.PrintWhiteText(" Encoding Audio Files..."); PrintEncodingQueueAndHistoryStats(); _History.WriteApprovalHistoryToFile(true); ConsolePrintHelpers.Wait(); CleanTranscodeTempDirectory(); _LoadSheetUpdateInterval = Globals.InitialLoadSheetUpdateInterval; _ActiveEncodings.Clear(); _FinishedEncodings.Clear(); _WaitingEncodings.Clear(); _EncodedFilesCount = 0; _CopiedFilesCount = 0; int encodingQueueCount = _EncodingQueues.EncodingQueue.Count; for (int i = 0; i < encodingQueueCount; i++) { AudioFileEncoding encoding = _EncodingQueues.EncodingQueue.Dequeue(); CopyOrEncodeAudioFile(encoding); AddToActiveOrWaitingList(encoding); IncrementalUpdateLoadSheet(); encoding.PrintAudioFileEncoding(); PrintEncodingStatsHeaders(); CheckForFinishedEncodings(Globals.MaxDegreeOfParallelism); } foreach (AudioFileEncoding waitingEncoding in _WaitingEncodings) { _ActiveEncodings.Add(waitingEncoding); } foreach (AODLoadSheetRow skippedLSR in _EncodingQueues.SkippedQueue) { _FinishedEncodings.Add(new AudioFileEncoding(skippedLSR, 0, false)); //Add skipped rows for updating back to loadsheet } if (encodingQueueCount > 0) { CheckForFinishedEncodings(1); } _History.WriteEncodingHistoryToFile(true); UpdateLoadSheet(); //final update to AOD Loadsheet with remaining rows not saved yet (including skipped rows) ConsolePrintHelpers.PrintDuration(stopwatch, "Encoding"); ConsolePrintHelpers.PrintYellowText("\n\n\n Encoding Run Completed"); if (_EncodingQueues.SkippedQueue.Count == 0) { ConsolePrintHelpers.PressAnyKeyToExit(); } else { _EncodingQueues.PrintAndEmptySkippedQueue(); } }
public void ScanAudioLibrary() { Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch(); ConsolePrintHelpers.PrintWhiteText(" Scanning Audio Library Paths...\n\n"); int rootDirectoryPrintCount = 1; foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories) { ConsolePrintHelpers.PrintWhiteText("\tPath (" + rootDirectoryPrintCount + " of " + _AudioLibraryRootDirectories.Count + "): "); rootDirectoryPrintCount++; if (Directory.Exists(rootDirectory.AudioLibraryRootDirectoryPath)) { ConsolePrintHelpers.PrintGreenText(rootDirectory.AudioLibraryRootDirectoryPath + " "); ConsolePrintHelpers.PrintWhiteText("File Count : "); rootDirectory.CursorTop = Console.CursorTop; rootDirectory.CursorLeft = Console.CursorLeft; Console.WriteLine("\n"); rootDirectory.ScanRootDirectoryPath(); if (rootDirectory.SubDirectories.Count < (Console.WindowHeight - Globals.AudioLibraryScanPrintMargin)) { Console.WriteLine("\n"); } else { Console.WriteLine(); } } else { ConsolePrintHelpers.PrintRedText(rootDirectory.AudioLibraryRootDirectoryPath); ConsolePrintHelpers.PrintWhiteText(" ERROR: Invalid Path"); ConsolePrintHelpers.PressAnyKeyToExit(); } } int cursorTop = Console.CursorTop - 3; foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories) { rootDirectory.ScanSubDirectories_Async(); } string[] waitSequence = { "*", "**", "***", " " }; bool keepWaiting = true; while (keepWaiting) { foreach (string pattern in waitSequence) { foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories) { Console.CursorTop = rootDirectory.CursorTop; Console.CursorLeft = rootDirectory.CursorLeft; if (rootDirectory.HasFinished == true) { ConsolePrintHelpers.PrintCyanText(rootDirectory.GetFileCount().ToString() + " "); } else { ConsolePrintHelpers.PrintCyanText(pattern); } if (rootDirectory.SubDirectories.Count < (Console.WindowHeight - Globals.AudioLibraryScanPrintMargin)) { foreach (AudioLibrarySubDirectory subDirectory in rootDirectory.SubDirectories) { Console.CursorTop = subDirectory.CursorTop; Console.CursorLeft = subDirectory.CursorLeft; if (subDirectory.HasFinished == true) { ConsolePrintHelpers.PrintCyanText(subDirectory.GetFileCount().ToString() + " "); } else { ConsolePrintHelpers.PrintCyanText(pattern); } } } } if (_AudioLibraryRootDirectories.All(rootDirectory => rootDirectory.HasFinished == true)) { keepWaiting = false; break; } Thread.Sleep(Globals.ProgressTickerDelayMilliseconds); } } foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories) { Console.CursorTop = rootDirectory.CursorTop; Console.CursorLeft = rootDirectory.CursorLeft; ConsolePrintHelpers.PrintCyanText(rootDirectory.GetFileCount().ToString()); _AudioLibraryFiles = _AudioLibraryFiles.Concat(rootDirectory.GetAudioLibraryFiles).ToList(); } Console.CursorTop = cursorTop; ConsolePrintHelpers.PrintWhiteText("\n\n\n Total File Count : "); ConsolePrintHelpers.PrintCyanText(_AudioLibraryFiles.Count.ToString()); foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories) { if (rootDirectory.AreShortcutsValid == false) { ConsolePrintHelpers.PrintRedText("\n\n\n ERROR Invalid Shortcuts Provided To Arbitrary Mapped Drive. Shortcuts Should Be Targeting Directories And Files In: "); ConsolePrintHelpers.PrintWhiteText(_Config.AudioLibraryRoot); ConsolePrintHelpers.PressAnyKeyToExit(); } } if (_AudioLibraryFiles.Count == 0) { ConsolePrintHelpers.PrintRedText("\n\n\n ERROR No Audio Library Files Found"); ConsolePrintHelpers.PressAnyKeyToExit(); } foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories) { if (rootDirectory.HasDetectedError) { ConsolePrintHelpers.PrintRedText("\n\n\n ERROR Detected Bad Directory/File Name: [" + rootDirectory.ErrorItem + "]"); Console.WriteLine("\n\n"); ConsolePrintHelpers.PrintRedText(" A Fix Has Been Attempted. Please Restart This Application."); ConsolePrintHelpers.PressAnyKeyToExit(); } } _AudioLibraryFiles = _AudioLibraryFiles.OrderBy(libraryFile => libraryFile.NormalizedSubDirectoriesFilePath).ToList(); //Helps to give consistent search results ConsolePrintHelpers.PrintDurationAndWait(stopwatch, "Audio Library Scan"); GC.Collect(); }