diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-01-11 16:32:23 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-01-29 20:58:25 +0100 |
| commit | b09eed77ec297dd05c112f4e93d6db5641053fe1 (patch) | |
| tree | ba07376bd6b40b1fd6ed469b2395cdaef0815948 /src/tools | |
| parent | 50314d71c36895cab87c44be772589fafea894f8 (diff) | |
Use DiskWriterBackEndResponse, and add some more information to the unmount error.
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/dcpomatic_disk.cc | 16 |
1 files changed, 10 insertions, 6 deletions
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<int>(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<MessageDialog>( 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; |
