X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Ftools%2Fdcpomatic_disk.cc;h=28799013f700f5e643abf455b83c2e191f4dd933;hp=a6ae58c8d704f00c70a4d9f8a7d0f121ea829fba;hb=b09eed77ec297dd05c112f4e93d6db5641053fe1;hpb=50314d71c36895cab87c44be772589fafea894f8 diff --git a/src/tools/dcpomatic_disk.cc b/src/tools/dcpomatic_disk.cc index a6ae58c8d..28799013f 100644 --- a/src/tools/dcpomatic_disk.cc +++ b/src/tools/dcpomatic_disk.cc @@ -284,11 +284,11 @@ private: auto ping = [this](int attempt) { if (_nanomsg.send(DISK_WRITER_PING "\n", 1000)) { - auto reply = _nanomsg.receive (1000); - if (reply && *reply == DISK_WRITER_PONG) { + auto reply = DiskWriterBackEndResponse::read_from_nanomsg(_nanomsg, 1000); + if (reply && reply->type() == DiskWriterBackEndResponse::Type::PONG) { return true; } else if (reply) { - LOG_DISK("Unexpected response %1 to ping received (attempt %2)", *reply, attempt); + LOG_DISK("Unexpected response %1 to ping received (attempt %2)", static_cast(reply->type()), attempt); } else { LOG_DISK("No reply received from ping (attempt %1)", attempt); } @@ -348,12 +348,16 @@ private: throw CommunicationFailedError (); } /* The reply may have to wait for the user to authenticate, so let's wait a while */ - auto reply = _nanomsg.receive (30000); - if (!reply || *reply != DISK_WRITER_OK) { + auto const reply = DiskWriterBackEndResponse::read_from_nanomsg(_nanomsg, 30000); + if (!reply || reply->type() != DiskWriterBackEndResponse::Type::OK) { auto m = make_wx( this, _("DCP-o-matic Disk Writer"), - wxString::Format(_("The drive %s could not be unmounted.\nClose any application that is using it, then try again."), std_to_wx(drive.description())) + wxString::Format( + _("The drive %s could not be unmounted.\nClose any application that is using it, then try again. (%s)"), + std_to_wx(drive.description()), + reply->error_message() + ) ); m->ShowModal (); return;