diff --git a/src/simple-mtpfs-fuse.h b/src/simple-mtpfs-fuse.h index 53ece1f..b2d076d 100644 --- a/src/simple-mtpfs-fuse.h +++ b/src/simple-mtpfs-fuse.h @@ -72,7 +72,7 @@ public: bool parseOptions(int argc, char **argv); void printHelp() const; void printVersion() const; - void listDevices() { m_device.listDevices(); } + bool listDevices() { return m_device.listDevices(); } bool exec(); bool isGood() const { return m_options.m_good; } diff --git a/src/simple-mtpfs-main.cpp b/src/simple-mtpfs-main.cpp index 2a25b1f..a1f0fa6 100644 --- a/src/simple-mtpfs-main.cpp +++ b/src/simple-mtpfs-main.cpp @@ -39,10 +39,8 @@ int main(int argc, char **argv) return 0; } - if (filesystem->isListDevices()) { - filesystem->listDevices(); - return 0; - } + if (filesystem->isListDevices()) + return !filesystem->listDevices(); return !filesystem->exec(); } diff --git a/src/simple-mtpfs-mtp-device.cpp b/src/simple-mtpfs-mtp-device.cpp index 2d16ce9..0280fd7 100644 --- a/src/simple-mtpfs-mtp-device.cpp +++ b/src/simple-mtpfs-mtp-device.cpp @@ -107,19 +107,23 @@ void MTPDevice::disconnect() logmsg("Disconnected.\n"); } -void MTPDevice::listDevices() +bool MTPDevice::listDevices() { int raw_devices_cnt; LIBMTP_raw_device_t *raw_devices; LIBMTP_error_number_t err = LIBMTP_Detect_Raw_Devices( &raw_devices, &raw_devices_cnt); - if (err != 0) - return; + if (err != 0) { + if (err == LIBMTP_ERROR_NO_DEVICE_ATTACHED) + std::cerr << "No raw devices found.\n"; + return false; + } for (int i = 0; i < raw_devices_cnt; ++i) { std::cout << i + 1 << ": " << raw_devices[i].device_entry.vendor << raw_devices[i].device_entry.product << "\n"; } + return true; } uint64_t MTPDevice::storageTotalSize() const diff --git a/src/simple-mtpfs-mtp-device.h b/src/simple-mtpfs-mtp-device.h index 28e05aa..d397fa7 100644 --- a/src/simple-mtpfs-mtp-device.h +++ b/src/simple-mtpfs-mtp-device.h @@ -37,7 +37,7 @@ public: bool connect(int dev_no = 0); void disconnect(); - void listDevices(); + bool listDevices(); void enableMove(bool e = true) { m_move_enabled = e; } uint64_t storageTotalSize() const;