Commit Graph

28 Commits

Author SHA1 Message Date
Lukas Prediger 83b6bf28f3 No exceptions for error handling! ConnectedDevice::Init now returns bool, indicating success or failure.
As decreed by @hatstand.
2021-06-21 12:51:44 +01:00
Lukas Prediger 95799a911d Removing ConnectedDevice::Refresh altogether 2021-06-21 12:51:44 +01:00
John Maguire 341dc7326f Reformat all C++ 2020-09-22 14:56:06 +01:00
Jim Broadus 6a9276ec0a Fix LibraryModel async query crash.
A LibraryBackend may be deleted while an associated LibraryModel object is using
it. An example is an async query running while a connected device is removed.
To prevent this, use a share pointer for the LibraryBackend.

This fixes one case where LibraryBackend is used after deletion. However, the
raw pointer is still passed around in several other places. These should be
evaluated on a case-by-case basis to insure that circular depencencies aren't
introduced.
2020-01-14 21:47:31 -08:00
Jim Broadus 6c159481ed Handle MTP connection failures more gracefully. (#6256)
Currently, the failure to connect to an MTP device results in the UI displaying
an open device that appears empty. This change introduces a method
ConnectedDevice::ConnectAsync() that is expected to handle any connecting tasks
that could block asynchronously. Upon completion, this emits a ConnectFinished
signal that indicates success or failure. The row in the UI is only updated
after the successful response is received. Upon failure, DeviceManager will
clean up and the row in UI is left in the pre-connect state.

Currently, only the MtpDevice utilizes this mechanism. All other devices use a
default implementation that immediately reports success.
2019-01-15 21:10:05 +00:00
John Maguire bebd781fdf Reformat all non-3rd-party C/C++/Objective-C++.
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
 -style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
John Maguire d309d4ab27 Use c++11 instead of boost where possible. 2014-02-06 16:51:39 +01:00
David Sansome 48f15c9fc7 Refactoring: instead of passing individual pointers to useful core classes (like TaskManager or LibraryBackend) to each class that uses them, pass one singleton-like Application instance everywhere. 2012-02-26 14:40:51 +00:00
Arnaud Bienner f7859f591c Adding CD devices in devices tab. Fixes issue 701. 2011-08-05 02:15:16 +02:00
David Sansome ed1a25693c Add missing licenses to debian/copyright, and add copyright information to each source file 2010-11-20 13:27:10 +00:00
David Sansome e4efa8a93e Show the total song count on each device, instead of the mountpoint 2010-08-30 14:45:27 +00:00
David Sansome 4b381e00fd Transcode files when copying them to devices 2010-08-29 19:22:21 +00:00
David Sansome 5001a5b3d1 Get a list of file formats supported by an MTP device 2010-08-29 00:08:39 +00:00
David Sansome 3f5e188045 Initial support for MTP devices 2010-08-14 15:57:05 +00:00
David Sansome 2e646494aa Update a device's free space after copying or removing files from it 2010-08-11 18:47:53 +00:00
David Sansome 43a27979dc Keep a shared_ptr on connected devices during the lifetime of their background processing threads 2010-08-09 21:32:25 +00:00
David Sansome a228e2b806 Copy files to afc devices. Doesn't quite work yet 2010-08-08 17:41:06 +00:00
David Sansome d29fb119a4 Don't rewrite the paths of songs on afc devices, and mark them as streams in the playlist so they won't get re-read on startup 2010-08-08 13:27:36 +00:00
David Sansome b2aba2bac2 Add an option to eject a device after copying files to it. Now with bonus multiple virtual inheritance. 2010-07-25 09:52:29 +00:00
David Sansome 94a9d520b5 Show the mount path of connected devices 2010-07-24 23:20:34 +00:00
David Sansome b624be9800 Add almost-working support for writing to ipods 2010-07-24 16:58:14 +00:00
David Sansome 62616304d8 Add a MusicStorage interface that can be used to abstract away the details of copying a file to a device. 2010-07-19 19:56:29 +00:00
David Sansome 0dcdf36535 Start of work on a GIO/GVFS device backend. 2010-07-17 14:22:07 +00:00
David Sansome e9525e8ec3 Very basic support for reading iPods with libgpod. Uses a hardcoded ~/.gvfs path for now. 2010-07-04 20:52:45 +00:00
David Sansome 2762d80722 Show the scanning progress in the device view 2010-07-04 15:56:08 +00:00
David Sansome db5409b66b Store devices in the main database 2010-07-03 23:00:07 +00:00
David Sansome 2deca7fd61 Add a DeviceManager which holds all the listers and connected devices. Make FilesystemDevices use their own LibraryWatcher. 2010-06-26 12:41:18 +00:00
David Sansome 28ea240eb8 ConnectedDevices have a LibraryModel 2010-06-25 23:38:21 +00:00