Commit Graph

714 Commits

Author SHA1 Message Date
Lukas Prediger a6fef97cac Separating out filename formatting options into separate widget.
First step towards unifying filename formatting over different dialogs.
2021-08-31 10:19:32 +01:00
kentsangkm 6982b47819 Search song from Spotify via web api 2021-07-18 10:45:10 +01:00
Jim Broadus f9854e564d transcoder: Add options avenc_aac element.
Initially adding encoder and bitrate settings, but the gstreamer
element exposes a lot of ffmpeg options that can be added as needed.

Reference: https://gstreamer.freedesktop.org/documentation/libav/avenc_aac.html
2021-06-27 15:56:50 +01:00
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 2dd566653f Dealing with cdio_open failures in CddaDevice constructor 2021-06-21 12:51:44 +01:00
Lukas Prediger 14d5c25d37 Integrated cddevice back into cddadevice 2021-06-21 12:51:44 +01:00
Lukas Prediger d2c636ab46 Introducing CdDevice, simple wrapper for cdio that watches disc changes.
CddaDevice now relies on this to update song list. CddaDevice::Refresh is now a no-op.
2021-06-21 12:51:44 +01:00
Jim Broadus cf88e47206 settings: Create a new Song Metadata settings page
Move tagreader process settings to the new page.
2021-05-24 15:23:05 +01:00
Jim Broadus 1309c76bec tagreader: Relocate artist/album/title guessing code
Move the code that attempts to fill missing song metadata out of the
tagreader worker. In the main process, it will be controllable using
settings and calling context.

The methods were moved into a new SongPathParser class that checks new
settings to determine if action should be taken.
2021-05-17 13:20:34 +01:00
Jim Broadus 33aa8c8579 build: Add libgpod link directory. 2021-05-08 15:53:20 +01:00
Jim Broadus d798c76e06 devices: Remove obsolete DeviceKit.
DeviceKit-disks, renamed udisks, was superseded by udisks2 in 2012.
2021-05-06 20:52:33 +01:00
Jim Broadus 079384c154 build: Add libmtp link directory.
If MTP is enabled, add library directory. This will allow it to be found
in brew installations.
2021-05-03 23:27:28 +01:00
Jim Broadus 3690c41cb0 build: Remove CMP0011 OLD policy
This policy allowed included files and modules to affect policy in the
parent scope. Besides the top level, 3rdparty/libprojectm is the only
place where old policy is set.

Reference: https://cmake.org/cmake/help/latest/policy/CMP0011.html
2021-04-18 13:47:10 +01:00
Jim Broadus 1de6a46e86 internet: Add InternetSettingsCategory class 2021-04-06 14:05:00 +01:00
Jim Broadus 6b34d0435f settings: Add SettingsCategory class
Add a new category class for settings. This will eventually allow
category classes to maintain their own lists of subpages.
2021-03-30 11:51:26 +01:00
Fabio Bas 6a45edaa34 Removed dirty hack in InternetModel; added "radiobrowser:" url handler; rework station play callback 2021-03-16 11:03:00 +00:00
Fabio Bas cd062f1d8b Added settings page 2021-03-16 11:03:00 +00:00
Fabio Bas 3e31094227 Initial RadioBrowser support: implemented search, groups by category, top 100 2021-03-16 11:03:00 +00:00
Fabio Bas e7768948e0 Initial radio-browser.info support 2021-03-16 11:03:00 +00:00
Jim Broadus 08ded2384f build: Move main config from /src to /include
Move /src/config.h to /include/clementine-config.h. The new name
prevents conflict with 3rdparty/taglib/config.h. A stub src/config.h will
remain for a transition period.  This is a first step in eliminating the
dependency of /ext components on /src.
2021-03-16 09:30:56 +00:00
Jim Broadus b989a674a4 application: Add splash during initialization
Since initialization on first startup or during a database schema update
can take several seconds, show a splash screen. In the initial
implementation, this is just a small Clementine logo.

The benefit of instantiating the splash in the Application class rather
than in main is that it could eventually show status messages during
startup. However, this implementation does not use the
QSplashScreen::finish mechanism that would synchronize the hiding of the
splash screen with the showing of the main window.
2021-02-21 14:18:54 +00:00
Jim Broadus f7b6708e4f transcoder: Add options widget for voaacenc
Base GstAudioEncoder class properties are not included.
Reference: https://gstreamer.freedesktop.org/documentation/voaacenc/index.html
2021-02-07 15:05:11 +00:00
Jim Broadus 4994091f86 transcoder: Add options widget for fdkaacenc
As with the other cases, the base GstAudioEncoder class properties are
not included.
Reference: https://gstreamer.freedesktop.org/documentation/fdkaac/fdkaacenc.html
2021-02-07 15:05:11 +00:00
Jim Broadus 8f3772b593 transcoder: Move option error into its own widget
Create a TranscoderOptionsError class and ui that inherits from
TranscoderOptionsInterface. Use this to display options errors. Move
widget creation into a static method. These changes will allow use of
the same mechanism in the transcoder settings page.
2021-02-05 10:40:31 +00:00
Jim Broadus 7d061afdc3 gstengine: Add PipelineView class
Add ListView derivative class for displaying GstPipelineModel data. A
GetSelectedIds method provides the list of selected pipelie IDs.
2021-01-29 22:30:03 +00:00
Jim Broadus ace5234e62 transcoder: Fix flacenc "insane" level encoding
The gstreamer flacenc element defines a set of quality levels that is different
from the standard flac library. Its highest level, labeled "insane", uses
settings that are outside of the streamable subset. Set the streamable-subset
property to false for this level.

Reference: https://xiph.org/flac/format.html#subset
2021-01-12 11:47:12 +00:00
Jim Broadus f9e9dae73d gstengine: Add a base class for pipelines
This allows debug functionality to be shared.
2021-01-10 18:14:57 +00:00
Jim Broadus 409c6b89d1 gstengine: Add a gstreamer debug console page
New page initially provides a button that triggers a dump of a graph of the main
pipeline.
2021-01-01 16:26:29 +00:00
Matthieu Bruel 9714b0632d All changes for ClemRemote v1.0 (in one go) 2020-12-17 12:23:30 +00:00
Robert-André Mauchin cfcd0a956e Drop -std=c++0x and -U__STRICT_ANSI__
This was causing compilation failures, static assertion failed, with GCC 11.

Fix #6865

Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
2020-12-17 11:28:09 +00:00
dmdmdm 75264f314d Share the love 2020-07-30 18:24:58 +01:00
Jim Broadus f563b7da40 Add DbPlaylistItem base class to LibraryPlaylistItem
This will be used to move items from non-library databases away from the
LibraryPlaylistItem class.
2020-06-19 11:18:32 +01:00
Jim Broadus 247cc8f715 Add missing playlistitem.h to CMakeLists.txt 2020-06-19 11:18:32 +01:00
Luis Caceres 24a571769a Initial KGlobalAccel support 2019-12-06 22:34:13 +00:00
John Maguire 8b765a5257 Remove qtsparkle support 2019-11-14 20:53:46 +00:00
John Maguire 992311c185 Bunch of mac build fixes 2019-10-16 19:42:21 +01:00
Jonas Kvinge d8788d6a0d Update qt5 branch 2019-01-27 01:00:36 +01:00
Jonas Kvinge 0e52bd9d63 Remove amazon cover provider (#6265) 2019-01-21 22:04:50 +00:00
Jonas Kvinge 7e25a7c7e4 Convert devices manager(model) to QAbstractItemModel (#6260) 2019-01-21 09:06:48 +00:00
Andreas Sturmlechner 4ff370ce1e Fix build without Qt5DBus (#6187)
* Qt5::Test is not required in the global QT_LIBRARIES definition

* Qt5::DBus had already been optional, drop bogus pkgconfig search

This partially reverts commit 4321ecf7d2.

* Find X11 only once, in root CMakeLists.txt

Since we have HAVE_X11, use HAVE_X11 in cmake.
2019-01-02 15:03:24 +00:00
Jonas Kvinge 09538d84f2 Fix Qt 5 build (#6246) 2019-01-02 15:02:34 +00:00
John Maguire 453270c8b5 Fixes for compiling against qt5 on mac 2018-12-05 18:16:34 +01:00
Jonas Kvinge 1f87535c2f Replace sha2 with QCryptographicHash (#6230) 2018-12-03 00:45:20 +00:00
Jonas Kvinge 16bdd39c03 Merge remote-tracking branch 'upstream/master' into qt5-update 2018-11-29 23:21:54 +01:00
Jonas Kvinge 9f946a2898 Improvements to makefiles and make components optional (#6221) 2018-11-29 21:32:12 +00:00
Jonas Kvinge 647279a000 Move spotifyimages out of spotify support 2018-11-21 10:31:17 +00:00
Jonas Kvinge 8c198a99a5 Qt 5 fixes 2018-11-21 10:31:17 +00:00
Jim Broadus 5a1a5a9d95 Display podcast episode information. (#6203)
* Display podcast episode information.
Add an EpisodeInfoWidget with title, author, duration, date, and description fields. Include this in the PodcastInfoDialog. If exactly one episode is selected, then show both the podcast and episode widgets and display the episode's URL. Otherwise, hide the episode widget and follow the existing behavior. Note that the desription field for the EpisodeInfoWidget uses the QLabel and does not currently download embedded images.
Add an always_show_hours option to the PrettyTime methods to include hours in formatting even if the field is zero. This is less ambiguious in some cases where duration is displayed.

* Apply patch from automated formatter test.
2018-11-17 13:29:16 +00:00
Jonas Kvinge d4fab4a2ea Merge remote-tracking branch 'upstream/master' into qt5-update 2018-11-11 22:46:07 +01:00
Jim Broadus 2e4814eb36 Create a PodcastInfoDialog that utilizes the existing PodcastInfoWidget. Add a Podcast Information menu item that is enabled when exactly one podcast is represented by the highlighted items. (#6190) 2018-11-11 20:53:06 +00:00