diff options
| author | JMC47 <JMC4789@gmail.com> | 2020-09-23 12:27:43 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-23 12:27:43 -0400 |
| commit | 54e570a95f2cb54fdc7be29d04870746c69a8b9e (patch) | |
| tree | 1db68bbdaa591d6cd8025493478fa5d0dadf7980 /Source/Core/DolphinQt/ConvertDialog.cpp | |
| parent | f33767f19cca6ee95af9727f0050f27e2571f770 (diff) | |
| parent | 5ba083215852a7f1afa2ac73316c2c0c500a6e7d (diff) | |
Merge pull request #8902 from JosJuice/android-convert
Android: Add disc image conversion
Diffstat (limited to 'Source/Core/DolphinQt/ConvertDialog.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/ConvertDialog.cpp | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/Source/Core/DolphinQt/ConvertDialog.cpp b/Source/Core/DolphinQt/ConvertDialog.cpp index 5a41ccea36..a14e728c40 100644 --- a/Source/Core/DolphinQt/ConvertDialog.cpp +++ b/Source/Core/DolphinQt/ConvertDialog.cpp @@ -32,17 +32,6 @@ #include "UICommon/GameFile.h" #include "UICommon/UICommon.h" -static bool CompressCB(const std::string& text, float percent, void* ptr) -{ - if (ptr == nullptr) - return false; - - auto* progress_dialog = static_cast<ParallelProgressDialog*>(ptr); - - progress_dialog->SetValue(percent * 100); - return !progress_dialog->WasCanceled(); -} - ConvertDialog::ConvertDialog(QList<std::shared_ptr<const UICommon::GameFile>> files, QWidget* parent) : QDialog(parent), m_files(std::move(files)) @@ -463,15 +452,19 @@ void ConvertDialog::Convert() } else { + const auto callback = [&progress_dialog](const std::string& text, float percent) { + progress_dialog.SetValue(percent * 100); + return !progress_dialog.WasCanceled(); + }; + std::future<bool> success; switch (format) { case DiscIO::BlobType::PLAIN: success = std::async(std::launch::async, [&] { - const bool good = - DiscIO::ConvertToPlain(blob_reader.get(), original_path, dst_path.toStdString(), - &CompressCB, &progress_dialog); + const bool good = DiscIO::ConvertToPlain(blob_reader.get(), original_path, + dst_path.toStdString(), callback); progress_dialog.Reset(); return good; }); @@ -479,10 +472,9 @@ void ConvertDialog::Convert() case DiscIO::BlobType::GCZ: success = std::async(std::launch::async, [&] { - const bool good = - DiscIO::ConvertToGCZ(blob_reader.get(), original_path, dst_path.toStdString(), - file->GetPlatform() == DiscIO::Platform::WiiDisc ? 1 : 0, - block_size, &CompressCB, &progress_dialog); + const bool good = DiscIO::ConvertToGCZ( + blob_reader.get(), original_path, dst_path.toStdString(), + file->GetPlatform() == DiscIO::Platform::WiiDisc ? 1 : 0, block_size, callback); progress_dialog.Reset(); return good; }); @@ -491,10 +483,10 @@ void ConvertDialog::Convert() case DiscIO::BlobType::WIA: case DiscIO::BlobType::RVZ: success = std::async(std::launch::async, [&] { - const bool good = DiscIO::ConvertToWIAOrRVZ( - blob_reader.get(), original_path, dst_path.toStdString(), - format == DiscIO::BlobType::RVZ, compression, compression_level, block_size, - &CompressCB, &progress_dialog); + const bool good = + DiscIO::ConvertToWIAOrRVZ(blob_reader.get(), original_path, dst_path.toStdString(), + format == DiscIO::BlobType::RVZ, compression, + compression_level, block_size, callback); progress_dialog.Reset(); return good; }); |
