Compare commits

..

436 Commits
0.5.2 ... 0.6.1

Author SHA1 Message Date
Jonas Kvinge
e65c5eeab1 Release 0.6.1 2019-08-03 13:29:22 +02:00
Jonas Kvinge
85fad35dc2 Update README.md 2019-08-03 13:15:43 +02:00
Jonas Kvinge
c992768efe Remove ChartLyrics (service is down) 2019-08-03 13:08:14 +02:00
Jonas Kvinge
7b13c0d059 Fix watching new subdirs in collection watcher 2019-08-02 23:58:47 +02:00
Jonas Kvinge
2d3f41da6f Automatically remove devices with old schemas when upgrading 2019-08-02 22:58:30 +02:00
Jonas Kvinge
43b9941dc8 Make sqlite3 fts5 check fatal 2019-08-02 21:12:18 +02:00
Jonas Kvinge
dcf27f54aa Add rpm syntax for mageia 2019-08-02 20:25:46 +02:00
Jonas Kvinge
fbf6b69e75 Update Changelog 2019-08-01 22:01:27 +02:00
Jonas Kvinge
0bfebd90da Add CMAKE_REQUIRED_FLAGS --std=c++11 to check_cxx_source_runs 2019-08-01 21:49:19 +02:00
Jonas Kvinge
e7c3dafa36 Handle a case where the playing widget is gets stuck when switch fast
between context and other widgets
2019-08-01 21:15:46 +02:00
Jonas Kvinge
e90a36da79 Fix track slider popup being stuck 2019-08-01 20:03:37 +02:00
Jonas Kvinge
93f33615ad Don't use check_cxx_source_runs when cross-compiling 2019-07-31 23:06:59 +02:00
Jonas Kvinge
99569081c9 Simply some song checks and make url always unique by using stream url
instead
2019-07-31 22:26:51 +02:00
Jonas Kvinge
588a0b3c41 Add cmake test for sqlite3 FTS5 2019-07-31 20:05:38 +02:00
Jonas Kvinge
4a1118ceb3 Fix macOS build 2019-07-31 20:03:24 +02:00
Jonas Kvinge
a65415bc10 Fix device schema 2019-07-30 22:56:33 +02:00
Jonas Kvinge
8a0e66bf11 Switch to FTS5 with unicode61 (#229)
* Switch to FTS5 with unicode61

* Update required sqlite version in README

* Update README

* Change back db file
2019-07-30 22:45:22 +02:00
Jonas Kvinge
02cda47c28 Disable trackslider popup on macos 2019-07-30 22:11:09 +02:00
Jonas Kvinge
d34a323a81 Handle cases where playlist background album gets stuck on error 2019-07-30 21:32:56 +02:00
Jonas Kvinge
4166ae8db0 Check HttpStatusCodeAttribute 2019-07-30 21:32:20 +02:00
Jonas Kvinge
955b906b52 Add Song() != operator 2019-07-30 21:31:26 +02:00
Jonas Kvinge
0d424aa81e Dont fetch lyrics again if only url is changed through url handler 2019-07-30 21:30:52 +02:00
Jonas Kvinge
80acbfa56a Update contributors 2019-07-30 21:30:08 +02:00
Jonas Kvinge
a7cac24004 Unref pipeline in moodbar on failure 2019-07-28 23:42:12 +02:00
Jonas Kvinge
2927bcf09d Merge branch 'master' of github.com:jonaski/strawberry 2019-07-28 14:58:52 +02:00
Jonas Kvinge
08dee6bb4f Fix error message from url handler 2019-07-28 14:58:34 +02:00
Jonas Kvinge
08c92f906a Update translations 2019-07-27 13:25:51 +02:00
Jonas Kvinge
8e9c9802d1 Change new line to unix 2019-07-27 12:34:27 +02:00
Jonas Kvinge
138df66d5e Use common nsi file 2019-07-27 12:32:28 +02:00
Jonas Kvinge
0a71347e9a Fix playlist shortcuts 2019-07-26 22:46:04 +02:00
Jonas Kvinge
2a541a7b9c Update README 2019-07-26 20:55:20 +02:00
Jonas Kvinge
705c12e8da Update README and Changelog 2019-07-26 20:52:47 +02:00
Jonas Kvinge
cf33df1339 Log system type on startup 2019-07-26 19:24:16 +02:00
Jonas Kvinge
87e543b5ef Fix collection query 2019-07-26 19:14:15 +02:00
Jonas Kvinge
81caec99b7 Fix closing databases 2019-07-25 17:56:28 +02:00
Jonas Kvinge
41484f8673 Fix exit 2019-07-24 23:29:09 +02:00
Jonas Kvinge
da0d61f36a Fix regression in playlist backend caused by previous commits 2019-07-24 21:37:09 +02:00
Jonas Kvinge
6f3bc74db0 Fix cross-compile for windows 2019-07-24 19:34:33 +02:00
Jonas Kvinge
af3bd6ec2f Use QNetworkAccessManager::supportedSchemes() 2019-07-24 19:27:00 +02:00
Jonas Kvinge
b5eb13449b Safely close database connections and delete backends
Also fix NewClosure leak caused by disconnected object signals
2019-07-24 19:16:51 +02:00
Jonas Kvinge
bd78e8c275 Fix memory leaks 2019-07-22 20:53:05 +02:00
Jonas Kvinge
2df21081a1 Fix pixmap cache in collection model
- Properly remove both from pixmap cache, pending art and pending cache keys when songs are deleted
- Increase default pixmap cache
- Clear pixmap cache when model is reset
2019-07-22 19:57:53 +02:00
Jonas Kvinge
ffebff4ea9 Fix uninitialized variable 2019-07-21 21:28:45 +02:00
Jonas Kvinge
2885bc99ca Fix memory leak in Database::BackupFile 2019-07-21 18:50:16 +02:00
Jonas Kvinge
2657b80adb Fix memory leak in tagreader 2019-07-21 15:12:28 +02:00
Jonas Kvinge
ebfc106701 Update libcdio 2019-07-21 13:19:27 +02:00
Jonas Kvinge
4d60ca951d Update Changelog 2019-07-21 00:05:54 +02:00
Jonas Kvinge
acf5c57599 Use InitArtManual in InitFromFilePartial 2019-07-20 22:53:01 +02:00
Jonas Kvinge
927df5ff39 Bump LSMinimumSystemVersion to 10.13.4 2019-07-20 15:26:36 +02:00
Jonas Kvinge
31fc031267 Fix missing qt plugins in macOS travis-ci build (#225) 2019-07-20 15:23:22 +02:00
Jonas Kvinge
02794e0ebd Add libzstd and libtasn1-6 2019-07-20 02:26:44 +02:00
Jonas Kvinge
ea6cce7068 Fix mtp device support 2019-07-19 19:56:37 +02:00
SamTShaw
e4cefeaa8f Ipod Support when listed from Udisks2 (#219)
Udisks2 didn't check to see if the device was actually an ipod, like
GIODeviceLister does.
2019-07-19 19:22:14 +02:00
Jonas Kvinge
d12d5fd8ae Update .travis.yml 2019-07-18 23:55:30 +02:00
Jonas Kvinge
0617c3fdc0 Update .travis.yml 2019-07-18 23:09:01 +02:00
Jonas Kvinge
f00eedf57e Update .travis.yml 2019-07-18 22:12:48 +02:00
Jonas Kvinge
6d36ae6197 Update .travis.yml 2019-07-18 21:35:07 +02:00
Martin Delille
45125abb8f Fix Finder icon (#216)
- Regenerate new strawberry.icns
- Fix Info.plist CFBundleIconFile
- Install Info.plist to strawberry.app
2019-07-17 23:13:15 +02:00
Jonas Kvinge
045b0cd075 Remove bogus svg 2019-07-17 22:35:19 +02:00
Martin Delille
ff3333e1bf Use create-dmg to generate MacOS release (#215) 2019-07-17 22:05:41 +02:00
Martin Delille
7663c5e149 MacOS CI improvement (#214)
* travis ci osx: simpler lib path

* Remove unnecessary sudo
2019-07-17 21:10:17 +02:00
Jonas Kvinge
4d4748a0a8 Update protobuf 2019-07-14 12:26:07 +02:00
Jonas Kvinge
f8f84ed09e Only replace non-ascii characters when not allowing extended ascii 2019-07-14 03:16:53 +02:00
Jonas Kvinge
e7de7ebbfa Use iconv to replace non-ascii characters 2019-07-14 03:08:19 +02:00
Jonas Kvinge
c9f01f4bc4 Remove old devicekit udisks backend 2019-07-13 23:00:25 +02:00
Jonas Kvinge
f2675adc05 Remove vlc, xine and phonon from deb 2019-07-13 22:52:05 +02:00
Jonas Kvinge
75beaa3684 Make sure device is valid before adding it 2019-07-13 18:28:29 +02:00
Jonas Kvinge
079495cc32 Remove usless include in cmake 2019-07-13 18:02:25 +02:00
Jonas Kvinge
c8bd89e56f Remove support for old imobiledevice uuid, it won't work anyway because
of other changes
2019-07-13 17:55:50 +02:00
Jonas Kvinge
b089ba2e04 Free memory of service descriptor and fix possible crashes 2019-07-13 17:33:58 +02:00
Jonas Kvinge
adbf8495c6 Add libgstaiff.so to macdeploy 2019-07-12 20:32:52 +02:00
Jonas Kvinge
ad062862d8 Add device url to mtp loader failure message 2019-07-12 20:32:30 +02:00
Gavin D. Howard
3a86a93154 Extend article sorting to artist and album artist (#210) 2019-07-11 16:51:25 +02:00
Jonas Kvinge
dcf0d6f72d Fix thread crash in mtpdevice 2019-07-11 00:28:19 +02:00
Jonas Kvinge
83d3725240 Fix MessageReply crash in tagreader 2019-07-10 22:40:30 +02:00
Jonas Kvinge
ce1dd69557 Change defaults in device schema 2019-07-10 20:04:05 +02:00
Jonas Kvinge
4081bdd752 Fix ctime in tagreader 2019-07-10 20:02:51 +02:00
Jonas Kvinge
c3f1e312b3 Change defaults in schemas 2019-07-10 20:02:21 +02:00
Jonas Kvinge
d820878b89 Fix oauth checkbox in tidal settings 2019-07-09 22:53:50 +02:00
Jonas Kvinge
7fa1461d5e Use QUrl::isLocalFile() 2019-07-09 21:43:56 +02:00
Jonas Kvinge
f4b1ef4d04 Set initial position of OSDPretty 2019-07-09 20:28:43 +02:00
Jonas Kvinge
656130a739 Replace QDesktopWidget in OSDPretty 2019-07-09 19:49:15 +02:00
Jonas Kvinge
aa8679dff5 Fix TryLoadPixmap and ShowCover 2019-07-09 01:14:58 +02:00
Jonas Kvinge
f94a3095fd Fix TryLoadPixmap and ShowCover 2019-07-09 01:05:42 +02:00
Jonas Kvinge
e11958dd58 Fix index in InternetSearchModel 2019-07-09 01:02:54 +02:00
Jonas Kvinge
a5a251a964 Remove use of QDesktopWidget in QSearchField 2019-07-09 00:05:08 +02:00
Jonas Kvinge
8cb1015a35 Remove use of QDesktopWidget in settingsdialog 2019-07-09 00:04:52 +02:00
Jonas Kvinge
b5dd90b2d5 Check QT_VERSION_CHECK for QImage::sizeInBytes() or QImage::byteCount() 2019-07-08 23:35:43 +02:00
Jonas Kvinge
5f7efee00e ifdef QFontMetrics::horizontalAdvance to make it work with older Qt 2019-07-08 23:27:45 +02:00
Jonas Kvinge
4150e3efde Use QT_VERSION to check whether to use QFileInfo::birthTime() or
QFileInfo::created()
2019-07-08 22:54:13 +02:00
Jonas Kvinge
8ebcb71e6e Replace all uses of QSignalMapper with lambda expressions 2019-07-08 22:27:45 +02:00
Jonas Kvinge
f3e852c042 Replace QImage::byteCount() with sizeInBytes() 2019-07-08 22:25:56 +02:00
Jonas Kvinge
5e2a07d144 Remove unused typedef 2019-07-08 22:24:47 +02:00
Jonas Kvinge
25f6231e9d Replace QString::null with QString() 2019-07-08 22:24:00 +02:00
Jonas Kvinge
beeba88ea5 Replace QModelIndex child() with index() 2019-07-08 22:23:15 +02:00
Jonas Kvinge
cc3d454d60 Add lyrics to edit tag dialog 2019-07-08 22:21:12 +02:00
Jonas Kvinge
afb583cff4 Remove unused typedef 2019-07-08 22:20:41 +02:00
Jonas Kvinge
561fa66393 Replace QFontMetrics::width with horizontalAdvance 2019-07-08 22:20:02 +02:00
Jonas Kvinge
870dc0d36f Replace QFontMetrics::width with horizontalAdvance, dark with darker, background() with window() and QString::null with QString() 2019-07-08 22:19:14 +02:00
Jonas Kvinge
51462dee1e Use QUrl::fromEncoded 2019-07-08 22:10:43 +02:00
Jonas Kvinge
c752d28c6a Change QFileInfo::created() to birthTime(), read lyrics from MP3 files 2019-07-08 22:01:34 +02:00
Jonas Kvinge
d5ca0ca283 Change compiler flags 2019-07-08 21:59:07 +02:00
Jonas Kvinge
f371b3a338 Fix tidal request 2019-07-08 17:08:10 +02:00
Jonas Kvinge
93fc4a2c86 Fix Tidal api URL 2019-07-08 08:10:52 +02:00
Jonas Kvinge
f10d3f86cc Fix Mpris2 AlbumCoverLoaded 2019-07-08 00:13:45 +02:00
Jonas Kvinge
af17b0015b Fix InitArtManual() to use album artist 2019-07-07 21:56:30 +02:00
Jonas Kvinge
61af1d1c72 Update file filter 2019-07-07 21:36:05 +02:00
Jonas Kvinge
65780e1672 Improve album cover searching and cover manager, use HttpStatusCodeAttribute and QSslError for services
- Improve album cover manager
- Change art_automatic and art_manual to QUrl
- Refresh collection album covers when new album covers are fetched
- Fix automatic album cover searching for local files outside of the collection
- Make all Json services check HttpStatusCodeAttribute
- Show detailed SSL errors for Subsonic, Tidal and Qobuz
2019-07-07 21:14:24 +02:00
Jonas Kvinge
c92a7967ea Change filename to url 2019-07-06 14:54:41 +02:00
Jonas Kvinge
60aed593b3 Fix download albumcovers setting 2019-07-06 00:16:13 +02:00
Jonas Kvinge
044f347729 Re-enable tidal oauth settings 2019-07-06 00:02:25 +02:00
Jonas Kvinge
aec9df1882 Switch to queue2 for probe queue (#204) 2019-07-05 23:50:57 +02:00
Jonas Kvinge
4f0a2515f8 Tweak the background image settings a bit
- Disable "do not cut" option when keep aspect ratio is unchecked
- Shorten text and add spacer to widget
2019-07-05 01:07:19 +02:00
Gavin D. Howard
5cde33711e Make playlist ignore articles when sorting (#202)
This is more correct, and the other way is driving me crazy.
2019-07-05 00:13:51 +02:00
Jonas Kvinge
64750025f6 Update libnettle 2019-07-04 22:51:17 +02:00
Jonas Kvinge
cd1cbfdffe Update libhogweed 2019-07-04 22:44:42 +02:00
Jonas Kvinge
d413f2c3a7 Revert "Try queue2 for probe queue"
This reverts commit a9c162476c.
2019-07-03 02:24:32 +02:00
Jonas Kvinge
ba314dd734 Set source in backends to fix losing source in InitFromFilePartial()
when updating path
2019-07-02 00:48:40 +02:00
Jonas Kvinge
9105b7615c Change to reference 2019-07-02 00:48:09 +02:00
Jonas Kvinge
a9c162476c Try queue2 for probe queue 2019-07-02 00:47:10 +02:00
Jonas Kvinge
732b37aca0 Use QMap::contains() 2019-07-01 19:20:57 +02:00
Jonas Kvinge
291b5fad7f Updated Changelog 2019-07-01 01:08:07 +02:00
Jonas Kvinge
c2a6def8b9 Rename cache album covers to download album covers and only do it for
favorite requests
2019-07-01 01:01:30 +02:00
Jonas Kvinge
9083c578cc Add live scanning (#199) 2019-06-30 21:06:07 +02:00
m4x3t
bcfd1d39bb Modify stretch background image functionality (#198)
* Modify stretch background image functionality

Changes the stretch functionality to fill out
the playlist background completely by zooming
the image (if keep aspect ratio is selected)
instead of filling it only height-wise.

* Add option to keep old background fill

* Fix playlist background image width and height

* Fix width calculation

* Remove old calculations
2019-06-30 19:37:05 +02:00
Jonas Kvinge
1185b910c4 Ops 2019-06-29 20:29:37 +02:00
Jonas Kvinge
540b6eba04 Fix hardcoded systemtray icon 2019-06-29 20:18:54 +02:00
Jonas Kvinge
47f4287e64 Merge remote-tracking branch 'origin/musicbrainz' 2019-06-29 19:58:10 +02:00
Jonas Kvinge
264c6e259b Respect rate limiting when fetching tags from musicbrainz 2019-06-29 19:57:20 +02:00
m4x3t
0bbe9838c4 Add option: notification on playback resume (#196)
* Add option: notification on playback resume

This adds an optional setting to show the
notification that is displayed when changing
the track when resuming playback as well.

* Modify resume notification calling

This adds a new signal "Resumed" that is emitted
when the player status is changed from Paused
to Playing.
The AlbumArtLoaded function will only be called
again when playback is manually resumed, and not
when the player is started for the first time
or when the track is changed.
2019-06-29 19:54:27 +02:00
Jonas Kvinge
2fe337eac3 Partial revert travis_terminate 2019-06-29 19:18:26 +02:00
Jonas Kvinge
5d7caafdf7 Terminate if one of the commands fail inside an if statement 2019-06-29 16:31:47 +02:00
Jonas Kvinge
f416ef925b Only create private key if DEPLOY_KEY_ENC is set 2019-06-29 15:57:30 +02:00
Jonas Kvinge
60bd90848b Add tests (#193) 2019-06-28 01:33:22 +02:00
Jonas Kvinge
b9f4407815 Change to const QString& 2019-06-23 18:34:03 +02:00
Jonas Kvinge
f9cd2639ff Remove annoying <year> Remaster from album and song titles 2019-06-23 18:32:15 +02:00
Jonas Kvinge
aeb36e8665 Simplify generating queries in lyrics providers 2019-06-23 16:45:00 +02:00
Jonas Kvinge
057482a3e5 Lower default search limits 2019-06-23 00:20:53 +02:00
Jonas Kvinge
15721da46e Read duration, samplerate and bit depth from stream url replies 2019-06-22 08:39:30 +02:00
Jonas Kvinge
f12b82b5ce Move checkboxes into preferences groupbox in Subsonic settings 2019-06-22 08:38:50 +02:00
Jonas Kvinge
10dc725942 Attempt to fix MessageReply crash when saving tags 2019-06-22 08:36:02 +02:00
Jonas Kvinge
5bd5cdf435 Make sure album_id is not null 2019-06-22 08:33:16 +02:00
Jonas Kvinge
84b3603c08 Fix initialization 2019-06-21 02:26:37 +02:00
Jonas Kvinge
8f59b96731 Update Changelog 2019-06-21 00:12:07 +02:00
Jonas Kvinge
e1de110dd7 Validate configuration better 2019-06-20 20:49:02 +02:00
Jonas Kvinge
8b6fd3d594 Make text selectable 2019-06-20 18:46:14 +02:00
Jonas Kvinge
d7761e8d79 Change parameters to const 2019-06-20 17:09:07 +02:00
Jonas Kvinge
751d652a2f Change title 2019-06-20 17:02:29 +02:00
Jonas Kvinge
647e7e708a Add confirmation box for opening songs in file browser 2019-06-20 17:00:10 +02:00
Jonas Kvinge
505c0eeae2 Set Unknown error if error is missing in Subsonic too 2019-06-20 16:37:37 +02:00
Jonas Kvinge
bf4001968e Change to const references, make search progress and status pass search id 2019-06-20 16:33:28 +02:00
Jonas Kvinge
9d222e2c57 Rename filename to url, change album_id to string and recreate songs tables (#182) 2019-06-20 02:14:44 +02:00
Jonas Kvinge
033300d659 Disable remove favorites from context menu in internetsongsview 2019-06-19 23:26:15 +02:00
Jonas Kvinge
4f2b04bd8f Enable login buttons when login attempt is complete 2019-06-19 23:15:15 +02:00
Jonas Kvinge
f8b9bb4b0f Remove user id and country code setting 2019-06-19 22:20:21 +02:00
Jonas Kvinge
8ce8e320c3 Change ids to qint64 2019-06-19 20:40:11 +02:00
Jonas Kvinge
7c0ab4212b Fix minor code issues with Qobuz 2019-06-19 12:57:12 +02:00
Jonas Kvinge
26633e0982 Fix compile error 2019-06-19 02:39:11 +02:00
Jonas Kvinge
d27a3f1f33 Set Subsonic API version to 1.15.0 2019-06-19 02:30:28 +02:00
Jonas Kvinge
89252d0dba Add Qobuz support (#181) 2019-06-19 02:22:11 +02:00
Jonas Kvinge
dbd2edf442 Fix minor code issues in tidal 2019-06-18 23:39:16 +02:00
Jonas Kvinge
dabd6f8284 Fix Subsonic API path 2019-06-18 23:25:10 +02:00
Jonas Kvinge
beb3ab463f Add missing subsonic fts songs table 2019-06-18 14:41:48 +02:00
Jonas Kvinge
1d67b623e0 Use single url setting instead for subsonic, check http code 2019-06-18 01:22:03 +02:00
Jonas Kvinge
2c8cde4d91 Add scheme setting for subsonic 2019-06-18 00:28:36 +02:00
Jonas Kvinge
8cc1d48115 Fix max concurrent requests in tidal 2019-06-18 00:02:43 +02:00
Jonas Kvinge
ec2468fb8d Remove unneeded include 2019-06-18 00:02:22 +02:00
Jonas Kvinge
7b54cef23b Add Subsonic support (#180) 2019-06-17 23:54:24 +02:00
Jonas Kvinge
a9da8811fc Turn off ssl-strict in gst pipeline 2019-06-17 23:01:38 +02:00
Jonas Kvinge
60e86b9881 Fix fading options 2019-06-17 02:23:51 +02:00
Jonas Kvinge
a6766f3c99 Fix gapless playback when using url handler 2019-06-15 19:32:26 +02:00
Jonas Kvinge
e59c3c6f70 Add MediaUrl function for playlistitems 2019-06-15 19:31:43 +02:00
Jonas Kvinge
49aa344d8b Change index to idx 2019-06-15 19:31:16 +02:00
Jonas Kvinge
4fed6ab298 Hide tidal oauth settings until streaming is possible 2019-06-14 23:02:57 +02:00
Jonas Kvinge
58eab4d3bc Fix verifying xml in tidal stream url 2019-06-14 23:02:33 +02:00
Jonas Kvinge
5ef5da687d Fix macOS build 2019-06-12 06:34:59 +02:00
Jonas Kvinge
4875d319dc Add love button 2019-06-12 00:38:52 +02:00
Jonas Kvinge
fb5a53435e Remove unused function 2019-06-11 19:28:48 +02:00
Jonas Kvinge
4f805d65b3 Fix need_login function 2019-06-11 19:26:00 +02:00
Jonas Kvinge
56ffb0deb1 Fix code challenge in tidal oauth 2019-06-10 02:29:57 +02:00
Jonas Kvinge
c0c1457073 Add optional oauth authentication for tidal 2019-06-09 19:29:25 +02:00
Jonas Kvinge
85a0748ad9 Add x-scheme-handler/tidal to desktop file 2019-06-09 03:10:37 +02:00
Jonas Kvinge
c1939a36dd Change CMakeLists.txt to use list APPEND for Qt5 2019-06-08 22:03:10 +02:00
Jonas Kvinge
b7c394b7a5 Disable fading when volume control is disabled 2019-06-08 12:04:04 +02:00
Jonas Kvinge
a070681f89 Move to private 2019-06-08 12:03:48 +02:00
Jonas Kvinge
d5e424eec8 Fix save/restore group by for internet collection 2019-06-08 00:15:54 +02:00
Jonas Kvinge
e0366d38f1 Change remove from favorites icon 2019-06-08 00:14:11 +02:00
Jonas Kvinge
cbf1d96b16 Avoid duplicate songs in the collection backend 2019-06-07 23:02:43 +02:00
Jonas Kvinge
7cc0d6bb5a Fix ItemFromSong() missing album id 2019-06-07 22:54:34 +02:00
Jonas Kvinge
e19b840ee6 Tidal artist id fixes 2019-06-07 21:02:28 +02:00
Jonas Kvinge
5c2ca1e3d9 Add tidal add/remove favorites + more tidal fixes 2019-06-07 20:23:05 +02:00
Jonas Kvinge
059c4beb30 Improve lyrics searcher 2019-06-06 18:22:41 +02:00
Jonas Kvinge
427808226f Change snap interface to network-manager-observe 2019-06-01 14:29:00 +02:00
Jonas Kvinge
5448245942 Update libprotobuf 2019-05-31 20:47:36 +02:00
Jonas Kvinge
34ab907007 Remove unused code 2019-05-31 20:47:15 +02:00
Jonas Kvinge
e5fde27859 Fix crash in tidal service 2019-05-31 02:32:01 +02:00
Jonas Kvinge
699e8e3ddb Fix schemas 2019-05-31 01:41:17 +02:00
Jonas Kvinge
28ee967371 Fix compile without xinescope 2019-05-31 01:29:56 +02:00
Jonas Kvinge
1b0b5f2554 Remove assert 2019-05-30 19:11:46 +02:00
Jonas Kvinge
1bcc86f989 Fix song search fetchalbums option 2019-05-30 18:46:17 +02:00
Jonas Kvinge
f26f932fd7 Queue tidal requests 2019-05-30 18:06:48 +02:00
Jonas Kvinge
2b7d48ce77 Distinguish albums with same name with album_id 2019-05-30 18:05:07 +02:00
Jonas Kvinge
111712fd6d Add artist_id, album_id and song id to songs 2019-05-30 18:04:30 +02:00
Jonas Kvinge
7609bc181e Implement offset to all Tidal requests 2019-05-29 17:39:51 +02:00
Jonas Kvinge
8b05af7ca3 Make xine analyzer optional 2019-05-28 18:37:51 +02:00
Jonas Kvinge
20f9108ebf Fix artists and albums limit 2019-05-28 17:34:44 +02:00
Jonas Kvinge
cecae7cdc3 Fix xine metronom compile 2019-05-27 21:56:07 +02:00
Jonas Kvinge
e5f3123567 Fix gst_pad_send_event block in ErrorMessageReceived() 2019-05-27 21:39:38 +02:00
Jonas Kvinge
27b0e27cfd initialize search id in the constructor. 2019-05-27 21:38:39 +02:00
Jonas Kvinge
890fba0f61 Add internet tabs view and tidal favorites (#167) 2019-05-27 21:10:37 +02:00
Jonas Kvinge
c4b732ff93 Add proper error handling to local redirectserver 2019-05-21 22:51:53 +02:00
Jonas Kvinge
b8fa2985d5 Fix Tidal SendLogin signal 2019-05-20 19:14:33 +02:00
Jonas Kvinge
ba741fbce8 Exclude version and path from singleapplication, dont start if message
could not be sent.
2019-05-20 18:41:12 +02:00
Jonas Kvinge
67d070c334 Increase default timeout 2019-05-20 18:40:34 +02:00
Jonas Kvinge
8576afe6f5 Fix return value of sendMessage() 2019-05-20 18:39:49 +02:00
Jonas Kvinge
36807fd376 Validate track duration 2019-05-14 19:07:02 +02:00
Jonas Kvinge
2ad1d27a59 Remove stream schema setting and add Add HI_RES option 2019-05-14 18:45:38 +02:00
Jonas Kvinge
7cc9c75d15 Make tidal token configurable 2019-05-13 23:49:09 +02:00
Jonas Kvinge
f33609bbf8 Compare artist and album case-insensitive 2019-05-13 22:38:24 +02:00
Jonas Kvinge
69eeb4b0f8 Move QSearchField to widgets and remove rest of qocoa 2019-05-08 23:34:44 +02:00
Jonas Kvinge
aa583ec1aa Set ContentTypeHeader for Tidal requests 2019-05-08 23:08:29 +02:00
Jonas Kvinge
2b9f153257 Add missing stage packages to snap 2019-05-07 21:04:52 +02:00
Jonas Kvinge
cb9b7fc917 Update appdata desktop file 2019-05-07 17:03:20 +02:00
Jonas Kvinge
74b36c8884 Remove some unneeded interfaces from the snap 2019-05-07 17:02:58 +02:00
Jonas Kvinge
89ff7d6dae Change api url of tidal cover provider 2019-05-06 18:18:31 +02:00
Jonas Kvinge
91df420cb4 Update Dockerfile 2019-05-05 23:51:59 +02:00
Jonas Kvinge
fc25c9f0bc Turn on git revision 2019-05-05 23:51:46 +02:00
Jonas Kvinge
12a27e3a8d Update snap version 2019-05-05 23:28:41 +02:00
Jonas Kvinge
125e32ff00 Release 0.5.5 2019-05-05 21:27:31 +02:00
Jonas Kvinge
4a110633e8 Use customized docker image for travis-ci 2019-05-05 21:20:39 +02:00
Jonas Kvinge
65648f8abd Change Tidal API url 2019-05-05 21:20:28 +02:00
Jonas Kvinge
50174861dc Turn back git revision 2019-05-05 21:20:05 +02:00
Jonas Kvinge
486eb1722e Release 0.5.4 2019-05-05 19:57:40 +02:00
Jonas Kvinge
740ead4059 Simplify enabling/disabling tabs code 2019-05-04 13:45:06 +02:00
Jonas Kvinge
96424be0da Fix fancy tabs loading 2019-05-03 17:32:55 +02:00
Jonas Kvinge
cd9d659672 Make sure to resume playback from correct playlist 2019-05-02 12:17:47 +02:00
Jonas Kvinge
ca140388d9 Fix resume playback on startup 2019-05-02 11:31:31 +02:00
Jonas Kvinge
8fe0229a2c Use static taglib on mageia and centos 2019-05-01 12:43:10 +02:00
Jonas Kvinge
1f43de9458 Update translations 2019-05-01 12:30:00 +02:00
Jonas Kvinge
2793f38c2d Update translations 2019-05-01 12:11:09 +02:00
Jonas Kvinge
42de7de21d Fix saving playlist columns 2019-04-28 14:14:19 +02:00
Jonas Kvinge
1072dc0a41 Update Changelog 2019-04-27 23:08:54 +02:00
Jonas Kvinge
9d8f310e30 Update Changelog 2019-04-27 23:02:46 +02:00
Jonas Kvinge
170adfd00c Save geometry, tabbar and playlist on exit only, fix loading tabs in
correct order
2019-04-27 22:32:39 +02:00
Jonas Kvinge
d0135a5ff7 Change namespaces for compatibility 2019-04-26 01:12:42 +02:00
Jonas Kvinge
1c926cca45 Use namespace for static taglib to avoid collision with taglib
linked to vlc
2019-04-25 23:00:25 +02:00
Jonas Kvinge
ace8ecbb4e Add missing taglib configure checks 2019-04-25 21:37:44 +02:00
Jonas Kvinge
193fa176dc Detach vlc callbacks 2019-04-25 00:54:57 +02:00
Jonas Kvinge
054db62cfa Dont translate file types 2019-04-25 00:54:20 +02:00
Jonas Kvinge
fe549cf4c5 Fix include 2019-04-25 00:01:26 +02:00
Jonas Kvinge
d347e49b6a Fix include 2019-04-25 00:00:49 +02:00
Jonas Kvinge
d6a3f7b329 Update stylehelper license in debian/control 2019-04-24 23:46:12 +02:00
Jonas Kvinge
4171bc4c70 Delete old stylehelper 2019-04-24 23:44:04 +02:00
Jonas Kvinge
deca5e5021 Update stylehelper 2019-04-24 23:43:09 +02:00
Jonas Kvinge
e0923a0494 Fix small sidebar mode width 2019-04-23 23:03:59 +02:00
Jonas Kvinge
0a1dfeb860 Fix some minor vlc issues 2019-04-23 19:20:46 +02:00
Jonas Kvinge
1c911575fa Remove nvidia workaround 2019-04-23 19:18:50 +02:00
Jonas Kvinge
d2ef0a996f Fix context background 2019-04-23 00:55:50 +02:00
Jonas Kvinge
1e886cb12c Improve equalizer and fix alignment of label right 2019-04-22 22:21:44 +02:00
Jonas Kvinge
984abc89a8 Fix chromaprinter unref buffer crash 2019-04-22 00:42:03 +02:00
Jonas Kvinge
3c6c9741ff Fix vlc crash 2019-04-21 22:24:24 +02:00
Jonas Kvinge
247a11146c Change 0 to nullptr 2019-04-21 21:39:11 +02:00
Jonas Kvinge
d1108c533f Test without nvidia workaround 2019-04-21 21:38:24 +02:00
Jonas Kvinge
881339848f Remove osd playing connect 2019-04-21 21:03:01 +02:00
Jonas Kvinge
c44638dcbe Also disable scroll over icon to change track option on systems without
X11
2019-04-21 20:33:54 +02:00
Jonas Kvinge
4887b85b8a Disable scroll over icon to change track option on kde 2019-04-21 20:23:49 +02:00
Jonas Kvinge
239f58e290 Only create audiopanorama when equalizer is enabled 2019-04-21 20:13:03 +02:00
Jonas Kvinge
560000f69d Only reload settings once 2019-04-21 03:19:30 +02:00
Jonas Kvinge
2d3509ae56 Apply settings immediately 2019-04-21 03:15:35 +02:00
Jonas Kvinge
4cc926a627 Disable notification art when tray notification is selected 2019-04-20 23:15:34 +02:00
Jonas Kvinge
a499a70633 Only enable equalizer and analyzer with gstreamer and xine 2019-04-20 22:24:11 +02:00
Jonas Kvinge
60a9154326 Fix equalizer 2019-04-20 22:23:22 +02:00
Jonas Kvinge
f761b8d4e1 Fix includes 2019-04-20 17:36:42 +02:00
Jonas Kvinge
7a0f6684e5 Improve song loader error handling 2019-04-20 15:28:16 +02:00
Jonas Kvinge
3ed6817ac9 Initialize gstreamer independent of witch engine is used 2019-04-20 15:25:31 +02:00
Jonas Kvinge
ba76385a2f Only invalidate local files 2019-04-20 15:22:56 +02:00
Jonas Kvinge
7bcd5ba14c Fix track seeking with mouse wheel 2019-04-20 14:26:30 +02:00
Jonas Kvinge
40db9f7020 Fix updating play and skip count 2019-04-19 14:02:28 +02:00
Jonas Kvinge
dffc46551e Fix mpris2 CanPlay 2019-04-19 12:38:01 +02:00
Jonas Kvinge
cf92852bb3 Dont install event filter unless its registered 2019-04-19 12:36:54 +02:00
Jonas Kvinge
844c4a28f4 Fix incorrect desktop file returned by mpris2 2019-04-19 10:35:15 +02:00
Jonas Kvinge
d2fc5a6228 Add libfftw3-dev to snap 2019-04-18 20:39:49 +02:00
Jonas Kvinge
006da837aa Fix debian/control 2019-04-18 19:55:38 +02:00
Jonas Kvinge
d920e27ab3 Add fftw to dependencies 2019-04-18 18:28:37 +02:00
Jonas Kvinge
27bafa8ab2 Fir formatting 2019-04-18 18:28:11 +02:00
Jonas Kvinge
907d18a83a Add moodbar 2019-04-18 15:03:01 +02:00
Jonas Kvinge
37b923bea3 Change query to find both albums by artist and album artist 2019-04-18 00:45:32 +02:00
Jonas Kvinge
91e597bbdd Decrease score for unmatched artist and album 2019-04-17 22:24:34 +02:00
Jonas Kvinge
a0d697bf6f Remove unused variable 2019-04-17 22:22:35 +02:00
Jonas Kvinge
63d5018ad6 Improve cover providers score system 2019-04-17 22:18:03 +02:00
Jonas Kvinge
ca928bdacb Add missing dependencies to nsi 2019-04-17 14:26:16 +02:00
Jonas Kvinge
f7e7791b8b Update libcrypto in nsi 2019-04-17 09:04:02 +02:00
Jonas Kvinge
80c2e5b141 Update .travis.yml (#115) 2019-04-17 00:23:47 +02:00
Jonas Kvinge
63c171e3b4 Re-enable macos builds (#114) 2019-04-16 23:17:36 +02:00
Jonas Kvinge
b0bfb0fdd4 Add libgnutls to nsi 2019-04-16 22:20:30 +02:00
Jonas Kvinge
31b24d9a09 Use GnuTLS instead 2019-04-16 17:48:11 +02:00
Jonas Kvinge
8b04a3b16a Add libssl to snap 2019-04-15 23:36:55 +02:00
Jonas Kvinge
b88d35d7cb Add openssl to dependencies 2019-04-15 22:44:43 +02:00
Jonas Kvinge
e00dcf1af0 Move declarations 2019-04-15 22:44:21 +02:00
Jonas Kvinge
7f23b9b424 Add https support to localredirectserver 2019-04-15 22:17:40 +02:00
Jonas Kvinge
e9bf04031b Move debian directory 2019-04-14 18:20:06 +02:00
Jonas Kvinge
c8f2334003 Remove unneeded includes 2019-04-14 18:06:38 +02:00
Jonas Kvinge
380b84195f Add ChartLyrics provider 2019-04-14 18:02:51 +02:00
Jonas Kvinge
fd26137ad2 Remove unused code 2019-04-14 16:42:05 +02:00
Jonas Kvinge
1ad163aac3 Add tidal cover provider 2019-04-14 16:40:05 +02:00
Jonas Kvinge
36dccc8157 Change search query 2019-04-14 03:01:21 +02:00
Jonas Kvinge
6dcdf5bf92 Add deezer cover provider 2019-04-14 02:54:40 +02:00
Jonas Kvinge
0b460017b8 Add dependencies to snap 2019-04-13 13:13:53 +02:00
Jonas Kvinge
061b06cd08 Update packages in snap 2019-04-13 01:39:07 +02:00
Jonas Kvinge
86272e1788 Change to https 2019-04-13 01:22:08 +02:00
Jonas Kvinge
86f3e011d8 Add desktop-qt5 to snap 2019-04-13 01:11:22 +02:00
Jonas Kvinge
0367c5bd1c Fix snap build 2019-04-13 00:44:21 +02:00
Jonas Kvinge
eed008de4b Fix snap network access 2019-04-13 00:21:19 +02:00
Jonas Kvinge
74f713ee35 Fix alsa through snap 2019-04-12 23:27:01 +02:00
Jonas Kvinge
6dbb8751b2 Fix snap issues 2019-04-12 19:55:33 +02:00
Jonas Kvinge
368bb54870 Formatting 2019-04-12 19:55:19 +02:00
Jonas Kvinge
77903a5ecd Improve handling of song source 2019-04-08 23:00:07 +02:00
Jonas Kvinge
9be161d165 Fix code style and errors 2019-04-08 18:46:11 +02:00
Jonas Kvinge
0ce5b50950 Update gstreamer plugins in nsi 2019-04-07 23:32:41 +02:00
Jonas Kvinge
9dded5203e Improve RPM spec file 2019-04-06 19:56:14 +02:00
Jonas Kvinge
d1c2188e5c Change compiler flags 2019-04-05 23:09:00 +02:00
Jonas Kvinge
c4285a14b2 Use common rpm spec file 2019-04-05 23:07:16 +02:00
Jonas Kvinge
cf0a47e836 Ops 2019-04-04 20:17:28 +02:00
Jonas Kvinge
c38639afcb Dont send playing now in offline mode 2019-04-04 20:16:26 +02:00
Jonas Kvinge
5863593c65 Change description for offline mode scrobbling 2019-04-04 20:09:45 +02:00
Jonas Kvinge
c2fa7f9a57 Turn back git revision 2019-04-04 20:09:27 +02:00
Jonas Kvinge
41f5cf6bee Update snap/snapcraft.yaml 2019-04-02 18:46:34 +02:00
Jonas Kvinge
ea508e9c35 Update dist/scripts/maketarball.sh.in 2019-04-02 18:46:04 +02:00
Jonas Kvinge
5ebf7cd273 Release 0.5.3 2019-04-02 00:52:28 +02:00
Jonas Kvinge
9986088dc4 Update protobuf in nsi 2019-04-02 00:01:06 +02:00
Jonas Kvinge
bfe0b2c634 Add missing error check on login error 2019-04-01 23:03:36 +02:00
Jonas Kvinge
cd2af6974c Remove ignore for content not found 2019-04-01 22:54:10 +02:00
Jonas Kvinge
c452486573 Update libprotobuf in nsi 2019-03-31 03:43:37 +02:00
Jonas Kvinge
79406b20f2 Fix Tidal login handling 2019-03-31 03:41:25 +02:00
Jonas Kvinge
1226bc214d Update Changelog 2019-03-31 01:16:11 +01:00
Jonas Kvinge
7da79dabdf Add group by format 2019-03-30 22:03:33 +01:00
Jonas Kvinge
b51026a2ee Remove dot from filenames 2019-03-28 21:19:50 +01:00
Jonas Kvinge
67d01f48a3 Remove api seeds lyrics (requires payment) 2019-03-28 02:24:05 +01:00
Jonas Kvinge
9fd5c5fc1c Add Spanish 2019-03-28 01:45:04 +01:00
Jonas Kvinge
70bc5b83fa Replace swedish characters 2019-03-28 01:40:59 +01:00
Jonas Kvinge
b380db51fa Add lines to settings 2019-03-27 01:23:15 +01:00
Jonas Kvinge
fab598ebff Add some lines to scrobbler settings 2019-03-27 00:48:38 +01:00
Jonas Kvinge
6f6d087fa2 Remove mono playback setting and fix the layout abit 2019-03-27 00:44:03 +01:00
Jonas Kvinge
6e463d1de3 Remove broken mono playback setting 2019-03-27 00:31:47 +01:00
Jonas Kvinge
21970f3065 Fix gst leaks 2019-03-27 00:27:49 +01:00
Jonas Kvinge
9d7e44be2d Update Changelog 2019-03-25 23:35:33 +01:00
Jonas Kvinge
9085fb8285 Disable aspect ratio checkbox when stretch is not checked 2019-03-25 23:34:36 +01:00
Jonas Kvinge
dd79d089f6 Tweak the size a bit 2019-03-25 23:33:58 +01:00
Jonas Kvinge
7aaad124d0 Add more background image options 2019-03-25 22:00:40 +01:00
Jonas Kvinge
0025cb9f53 Add missing include 2019-03-25 19:52:46 +01:00
Jonas Kvinge
15c8f2a3ee Notify collection backend about renamed files when organising files 2019-03-25 00:53:12 +01:00
Jonas Kvinge
fc1a2dac90 Update 3rdparty/README.md 2019-03-24 19:28:55 +01:00
Jonas Kvinge
f698b860f7 Tidal: Handle login better and allow duplicate albums 2019-03-23 21:14:46 +01:00
Jonas Kvinge
86b057a301 Add Song::ExtensionForFiletype 2019-03-23 02:24:09 +01:00
Jonas Kvinge
b066158a4b Remove redundant includes 2019-03-22 23:23:50 +01:00
Jonas Kvinge
046c822604 Fix loading playlists correctly 2019-03-22 23:23:22 +01:00
Jonas Kvinge
d427733bfc Save and restore geometry in transcoder dialog 2019-03-22 23:22:23 +01:00
Jonas Kvinge
04d34a06c7 Improve Tidal error handling 2019-03-22 23:20:43 +01:00
Jonas Kvinge
69d86513ae Save/restore geometry in settings dialog 2019-03-22 23:19:24 +01:00
Jonas Kvinge
019b49a219 Add option to allow extended ascii characters, save/restore geometry 2019-03-22 23:18:14 +01:00
Jonas Kvinge
d9e787784a Fix Song::InitFromProtobuf not setting source, add function Song::SourceFromURL 2019-03-22 23:16:18 +01:00
Jonas Kvinge
71969b88e3 Fix GetSongByUrl incorrectly using bytearray instead of string 2019-03-22 23:14:25 +01:00
Jonas Kvinge
7ae0f5e246 Add better support for APE tags 2019-03-22 23:13:49 +01:00
Jonas Kvinge
1ea7da4bb5 Update taglib 2019-03-22 23:12:59 +01:00
Jonas Kvinge
8b96bb5f27 Fix formatting 2019-03-22 23:12:41 +01:00
Jonas Kvinge
aefce3ccd0 Remove unused mpris1 files 2019-03-22 23:12:24 +01:00
Jonas Kvinge
4e599e2aba Move icon loading to device model 2019-03-22 23:10:42 +01:00
Jonas Kvinge
4148c289af Fix copyright 2019-03-13 00:51:51 +01:00
Jonas Kvinge
d575ab0b2b Add basic support for system icons and custom icons 2019-03-13 00:43:46 +01:00
Jonas Kvinge
d09af19d3f Update mimetypes 2019-03-12 23:26:40 +01:00
Jonas Kvinge
a2dff17db9 Add CanPlay and CanPause 2019-03-12 23:10:31 +01:00
Jonas Kvinge
c0fecb935f Change mpris path 2019-03-12 01:00:30 +01:00
Jonas Kvinge
28249b7e99 Remove unused variable 2019-03-12 00:59:35 +01:00
Jonas Kvinge
eb63e2257f Fix load settings in albumcoverchoicecontroller 2019-03-12 00:01:52 +01:00
Jonas Kvinge
2211716d04 Add option to save album cover in album directory 2019-03-11 23:07:11 +01:00
Jonas Kvinge
242137a50c Only do QUrl toEncoded() if url is valid 2019-03-10 21:09:05 +01:00
Jonas Kvinge
c41311bf76 Disable macos build 2019-03-09 18:19:15 +01:00
Jonas Kvinge
e0d959e3c5 Add norwegian translations 2019-03-09 18:02:47 +01:00
Jonas Kvinge
f0a5c4b2c2 Enable translations 2019-03-09 18:02:17 +01:00
Jonas Kvinge
e10a50fdc1 Remove unused roles 2019-03-09 17:49:12 +01:00
Jonas Kvinge
380f2509ac Remove deezer 2019-03-09 17:43:20 +01:00
Jonas Kvinge
c0fb35f6b9 Add option to disable playing widget 2019-03-09 17:20:07 +01:00
Jonas Kvinge
3e658845d2 Add option to disable volume control 2019-03-09 16:48:45 +01:00
Jonas Kvinge
384209ba70 Fix UNC path in gst engine 2019-02-25 16:35:29 +01:00
Jonas Kvinge
835b589894 Fix untranslated text 2019-02-23 18:54:00 +01:00
Jonas Kvinge
76e684ee75 Add translations to macos builds (#84) 2019-02-23 04:20:28 +01:00
Jonas Kvinge
d0d2c83768 Ops 2019-02-23 04:18:45 +01:00
Jonas Kvinge
b476bc3168 Add translations to debian 2019-02-23 04:14:49 +01:00
Jonas Kvinge
5a2ad145e8 Add gettext and Qt5LinguistTools 2019-02-23 01:14:36 +01:00
Jonas Kvinge
27233d2549 Dont allow X11 shortcuts on wayland 2019-02-23 01:10:45 +01:00
Jonas Kvinge
1a0bc75629 Change pacman to use current git revision 2019-02-22 22:57:53 +01:00
Jonas Kvinge
dc04961699 Add update-desktop-files 2019-02-22 21:17:10 +01:00
Jonas Kvinge
e594cf299e Rename desktop and appdata files 2019-02-22 20:41:06 +01:00
Jonas Kvinge
096c995a91 Add src/core/potranslator.h 2019-02-22 20:38:23 +01:00
Jonas Kvinge
f64b175cd8 Fix .gitignore 2019-02-22 20:38:08 +01:00
Jonas Kvinge
954e0e8a59 Add translations support (#82)
* Add translations support
* Update .gitignore
2019-02-22 20:24:38 +01:00
Jonas Kvinge
034b032cfa Update .gitignore 2019-02-22 20:08:43 +01:00
Jonas Kvinge
e33590bff9 Show strawberry icon in OSD 2019-02-21 18:12:40 +01:00
Jonas Kvinge
55f610f3b2 Fix formatting 2019-02-20 21:29:14 +01:00
Jonas Kvinge
87fd93a1cf Show error when editing tags fails, update DB immediately when successful 2019-02-20 21:27:53 +01:00
Jonas Kvinge
2db77a248a Fix formatting 2019-02-20 21:27:04 +01:00
Jonas Kvinge
f600274592 Replace NULL with nullptr 2019-02-20 21:26:14 +01:00
Jonas Kvinge
bc37d00a81 Stop watcher when unmounting 2019-02-20 21:24:10 +01:00
Jonas Kvinge
1956ea95ee Use leap instead 2019-02-20 21:22:59 +01:00
Jonas Kvinge
a56e3b91e1 Change fade default and allow setting device back if custom device is
selected
2019-02-20 21:21:33 +01:00
Jonas Kvinge
6bcc9d61e1 Dont set keep running 2019-02-20 21:21:09 +01:00
Jonas Kvinge
3ef34191a3 Fix icon 2019-02-20 21:20:38 +01:00
Jonas Kvinge
60de36aff9 Remove whitespace 2019-02-20 21:15:58 +01:00
Jonas Kvinge
b019dd1c51 Update Dockerfile 2019-02-19 00:37:37 +01:00
Jonas Kvinge
3a083d5527 Update Dockerfile 2019-02-19 00:26:43 +01:00
Jonas Kvinge
8006241a81 Change Dockerfile 2019-02-19 00:14:20 +01:00
Jonas Kvinge
b05e3d24ee Change id 2019-02-18 22:58:10 +01:00
Jonas Kvinge
b78c0a4979 Remove unused includes 2019-02-13 20:12:20 +01:00
Jonas Kvinge
d3b3c309fa Create systray tooltip workaround for KDE 2019-02-13 20:04:05 +01:00
Jonas Kvinge
65615495d9 Remove debugging 2019-02-12 22:08:26 +01:00
Jonas Kvinge
35f448c34f Add artist search in internet view, and use album artist 2019-02-12 21:58:03 +01:00
Jonas Kvinge
e1abd28a88 Remove upload script 2019-02-10 23:14:49 +01:00
Jonas Kvinge
a109d8be64 Revert change to tooltip 2019-02-10 21:28:09 +01:00
Jonas Kvinge
333a0bc05a Capitalize strawberry in osd and tooltip, change cdcase and remove some
unused code
2019-02-10 21:25:36 +01:00
Jonas Kvinge
a831519b54 Remove unused file 2019-02-10 18:37:06 +01:00
Jonas Kvinge
a25052ed96 Replace no cover image 2019-02-09 14:51:12 +01:00
Jonas Kvinge
676f8dc8be Make it possible to use enter in shortcuts 2019-02-09 12:47:40 +01:00
Jonas Kvinge
9c3cb82fca Add compiler to macos img file (#73) 2019-02-04 23:42:07 +01:00
Jonas Kvinge
9b827f58ad Add files to exculde in maketarball 2019-02-04 23:30:08 +01:00
Jonas Kvinge
22e327d391 Remove TextSelectableByKeyboard 2019-02-04 22:34:22 +01:00
Jonas Kvinge
451de4d72d Add spaces to debian copyright 2019-02-04 22:32:53 +01:00
Jonas Kvinge
0679b78c1d Add boom and rainbow analyzers 2019-02-04 21:34:12 +01:00
Jonas Kvinge
ad7084b897 Make lyrics selectable 2019-02-04 19:07:05 +01:00
Jonas Kvinge
3c068eaba9 Remove support for older taglib in tagreader 2019-02-02 12:39:11 +01:00
Jonas Kvinge
819ae08c6a Change to default to albumartist in organise dialog 2019-02-02 00:31:26 +01:00
Jonas Kvinge
38414ad8de Add unity7 to snap 2019-01-31 20:43:26 +01:00
Jonas Kvinge
f0422f7634 Fix snap 2019-01-31 00:08:52 +01:00
Jonas Kvinge
2a004dadf3 Remove system-files from snap 2019-01-30 00:00:35 +01:00
Jonas Kvinge
b7ea586e44 Add snap 2019-01-29 22:44:07 +01:00
Jonas Kvinge
2a5f286d07 Update README.md 2019-01-28 23:46:33 +01:00
Jonas Kvinge
0bc14671ec Turn back git revision 2019-01-26 23:53:35 +01:00
816 changed files with 42608 additions and 19640 deletions

155
.gitignore vendored
View File

@@ -1,80 +1,117 @@
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
*~
*.autosave
*.a
*.core
*.moc
# Build
build/
bin/
# CMake
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Makefile*
Testing
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
*.orig
*.rej
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# Dump files
*.core
*.stackdump
# Qt
*build-*
moc_*.cpp
ui_*.h
moc_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash
*.spec
*.nsi
*.plist
maketarball.sh
dist/macos/create-dmg.sh
dist/debian/changelog
dist/pacman/PKGBUILD
ui_*.h
*.moc
*.qm
# qtcreator generated files
*.pro.user*
# QtCreator
CMakeLists.txt.user*
*.pro.user
*.pro.user.*
*creator.user*
target_wrapper.*
compile_commands.json
# xemacs temporary files
# Temporary files
*~
*.autosave
*.orig
*.rej
.*.kate-swp
.swp.*
.*.swp
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*
# Directory files
.directory
.DS_Store
Thumbs.db
# MinGW generated files
*.Debug
*.Release
# Python byte code
*.pyc
# Package files
*.spec
*.nsi
*.plist
# Binaries
# --------
*.dll
*.exe
# Stuff in dist
maketarball.sh
create-dmg.sh
changelog
PKGBUILD
# Translations
translations.pot
zanata.xml
.zanata-cache/
# Snap
parts/
prime/
stage/
*.snap
/snap/.snapcraft/
/*_source.tar.bz2

View File

@@ -10,42 +10,50 @@ compiler:
- clang
before_install:
- echo $DEPLOY_KEY_ENC | base64 --decode | openssl aes-256-cbc -K $encrypted_83a41ac424a6_key -iv $encrypted_83a41ac424a6_iv -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
- if ! [ "$DEPLOY_KEY_ENC" == "" ]; then
echo $DEPLOY_KEY_ENC | base64 --decode | openssl aes-256-cbc -K $encrypted_83a41ac424a6_key -iv $encrypted_83a41ac424a6_iv -out ~/.ssh/id_rsa -d ;
chmod 600 ~/.ssh/id_rsa ;
fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
docker build -f Dockerfile -t strawberry-build .;
docker run --name build -itd strawberry-build /bin/bash;
docker build -f Dockerfile -t strawberry-build . || travis_terminate 1;
docker run --name build -itd strawberry-build /bin/bash || travis_terminate 1;
docker exec build git clone https://github.com/jonaski/strawberry;
fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
git fetch --unshallow;
git pull;
brew update;
brew unlink python;
brew install glib pkgconfig protobuf protobuf-c qt;
brew install sqlite --with-fts;
brew install gstreamer gst-plugins-base;
brew install gst-plugins-good --with-flac;
brew install gst-plugins-bad gst-plugins-ugly gst-libav;
brew install chromaprint;
git fetch --unshallow || travis_terminate 1;
git pull || travis_terminate 1;
brew update || travis_terminate 1;
brew unlink python || travis_terminate 1;
brew install glib pkgconfig libffi protobuf protobuf-c qt gettext gnutls fftw sqlite chromaprint;
brew install gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav;
brew install libcdio libmtp libimobiledevice libplist;
brew install create-dmg;
export Qt5_DIR=/usr/local/opt/qt5/lib/cmake;
export Qt5LinguistTools_DIR=/usr/local/opt/qt5/lib/cmake/Qt5LinguistTools;
export PATH="/usr/local/opt/gettext/bin:$PATH";
export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig/:$PKG_CONFIG_PATH;
ls /usr/local/lib/gstreamer-1.0;
ls /usr/local/lib/gio/modules;
fi
before_script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker exec build cmake -Hstrawberry -Bbuild -DENABLE_STREAM_DEEZER=ON ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mkdir build; cd build; cmake .. -DUSE_BUNDLE=ON -DENABLE_STREAM_DEEZER=ON ; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker exec build cmake -Hstrawberry -Bbuild ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mkdir build; cd build; cmake .. -DUSE_BUNDLE=ON ; fi
script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker exec build make -C build -j8 ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
make -j8;
sudo make install;
sudo ../dist/macos/macdeploy.py strawberry.app;
../dist/macos/create-dmg.sh strawberry.app;
make -j8 || travis_terminate 1;
make install || travis_terminate 1;
sudo make dmg;
fi
after_success:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ls -lh strawberry.dmg; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$TRAVIS_BRANCH" == "master" ]]; then rsync -e "ssh -o StrictHostKeyChecking=no" -va strawberry*.dmg travis@echoes.jkvinge.net:/home/travis/builds/macos; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ls -lh strawberry*.dmg; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$CC_FOR_BUILD" == "gcc" ]] && [ -f ~/.ssh/id_rsa ]; then
if [[ "$TRAVIS_BRANCH" == "master" ]]; then
rsync -e "ssh -o StrictHostKeyChecking=no" -va strawberry*.dmg travis@echoes.jkvinge.net:/home/travis/builds/macos;
elif [[ "$TRAVIS_BRANCH" == "macos" ]]; then
rsync -e "ssh -o StrictHostKeyChecking=no" -va strawberry*.dmg travis@echoes.jkvinge.net:/home/travis/builds/macos-test;
fi
fi
branches:
except:

30
3rdparty/README.md vendored
View File

@@ -7,28 +7,11 @@ This is a small static library used by Strawberry to prevent it from starting tw
If the user tries to start strawberry twice, the main window will maximize instead of starting another instance.
If you dynamically link to your systems version, you'll need two versions, one defined as QApplication and
one as a QCoreApplication.
It is included here because it is normally not packaged by distros, and is also used on macOS and Windows.
It is included here because it is not packed by distros and is also used on macOS and Windows.
URL: https://github.com/itay-grudev/SingleApplication
qocoa
-----
This is a small static library currently used for the search fields above the collection, playlist and in
the cover manager. It is slightly modified from original version, so it should not be used as a dynamic
library.
The plan in the long run is to replace it with something else.
URL: https://github.com/mikemcquaid/Qocoa
SPMediaKeyTap
-------------
This is used for macOS only to enable strawberry to grab global shortcuts and can safely be deleted on other
platforms.
taglib
------
@@ -38,9 +21,9 @@ correctly.
It is kept in 3rdparty because there currently is no offical release of TagLib with the features and bugfixes
that are in the official repository. And also because some distros use older, or unpatched versions.
This version is a unmodified copy of commit 5cb589a (sha: 5cb589a5b82c13ba8f0542e5e79629da7645cb3c).
Also, there is a bug in version 1.11.1 corrupting Ogg files, see: https://github.com/taglib/taglib/issues/864
There is a bug in the latest version (1.11.1) corrupting Ogg files,
see: https://github.com/taglib/taglib/issues/864
If you decide to use the systems taglib, make sure it has been patched with the following commit:
https://github.com/taglib/taglib/commit/9336c82da3a04552168f208cd7a5fa4646701ea4
@@ -57,3 +40,10 @@ utf8-cpp
This is 2 header files used by taglib, but kept in a seperate directory because it is maintained by others.
URL: http://utfcpp.sourceforge.net/
SPMediaKeyTap
-------------
This is used for macOS only to enable strawberry to grab global shortcuts and can safely be deleted on other
platforms.

View File

@@ -1,35 +0,0 @@
cmake_minimum_required(VERSION 2.8.11)
set(CMAKE_CXX_STANDARD 11)
set(SOURCES)
set(HEADERS
qsearchfield.h
qbutton.h
qprogressindicatorspinning.h
)
qt5_wrap_cpp(MOC_SOURCES ${HEADERS})
if(APPLE)
list(APPEND SOURCES
qsearchfield_mac.mm
qbutton_mac.mm
qprogressindicatorspinning_mac.mm
)
else()
list(APPEND SOURCES
qsearchfield_nonmac.cpp
qbutton_nonmac.cpp
qprogressindicatorspinning_nonmac.cpp
)
set(RESOURCES
qsearchfield_nonmac.qrc
qprogressindicatorspinning_nonmac.qrc
)
qt5_add_resources(RESOURCES_SOURCES ${RESOURCES})
endif()
add_library(Qocoa STATIC ${SOURCES} ${MOC_SOURCES} ${RESOURCES_SOURCES})
target_link_libraries(Qocoa ${QT_LIBRARIES})

View File

@@ -1,19 +0,0 @@
Copyright (C) 2011 by Mike McQuaid
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -1,38 +0,0 @@
# Qocoa
Qocoa is a collection of Qt wrappers for OSX's Cocoa widgets.
## Features
- basic fallback to sensible Qt types on non-OSX platforms
- shared class headers which expose no implementation details
- typical Qt signal/slot-based API
- trivial to import into projects (class header/implementation, [single shared global header](https://github.com/mikemcquaid/Qocoa/blob/master/qocoa_mac.h))
## Building
```
git clone git://github.com/mikemcquaid/Qocoa.git
cd Qocoa
qmake # or cmake .
make
```
## Status
I'm not personally working on this any more but will accept pull-requests.
[![Build Status](https://travis-ci.org/MikeMcQuaid/Qocoa.svg?branch=master)](https://travis-ci.org/MikeMcQuaid/Qocoa)
## Usage
For each class you want to use copy the [`qocoa_mac.h`](https://github.com/mikemcquaid/Qocoa/blob/master/qocoa_mac.h), `$CLASS.h`, `$CLASS_mac.*` and `$CLASS_nonmac.*` files into your source tree and add them to your buildsystem. Examples are provided for [CMake](https://github.com/mikemcquaid/Qocoa/blob/master/CMakeLists.txt) and [QMake](https://github.com/mikemcquaid/Qocoa/blob/master/Qocoa.pro).
## Contact
[Mike McQuaid](mailto:mike@mikemcquaid.com)
## License
Qocoa is licensed under the [MIT License](http://en.wikipedia.org/wiki/MIT_License).
The full license text is available in [LICENSE.txt](https://github.com/mikemcquaid/Qocoa/blob/master/LICENSE.txt).
Magnifier and EditClear icons taken from [QtCreator](http://qt-project.org/) and are licensed under the [LGPL](http://www.gnu.org/copyleft/lesser.html).
Other icons are taken from the [Oxygen Project](http://www.oxygen-icons.org/) and are licensed under the [Creative Commons Attribution-ShareAlike 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/).
## Gallery
![Qocoa Gallery](https://github.com/mikemcquaid/Qocoa/raw/master/gallery.png)

View File

@@ -1,13 +0,0 @@
Widgets I hope to implement (or at least investigate):
- NSTokenField
- NSSegmentedControl
- NSLevelIndicator
- NSPathControl
- NSSlider (Circular)
- NSSplitView
- NSTextFinder
- NSOutlineView in an NSScrollView (Source List)
- NSDrawer
- PDFView
- WebView

View File

@@ -1,49 +0,0 @@
#ifndef QBUTTON_H
#define QBUTTON_H
#include <QWidget>
#include <QPointer>
class QButtonPrivate;
class QButton : public QWidget
{
Q_OBJECT
public:
// Matches NSBezelStyle
enum BezelStyle {
Rounded = 1,
RegularSquare = 2,
Disclosure = 5,
ShadowlessSquare = 6,
Circular = 7,
TexturedSquare = 8,
HelpButton = 9,
SmallSquare = 10,
TexturedRounded = 11,
RoundRect = 12,
Recessed = 13,
RoundedDisclosure = 14,
#ifdef __MAC_10_7
Inline = 15
#endif
};
explicit QButton(QWidget *parent, BezelStyle bezelStyle = Rounded);
public slots:
void setText(const QString &text);
void setImage(const QPixmap &image);
void setChecked(bool checked);
public:
void setCheckable(bool checkable);
bool isChecked();
signals:
void clicked(bool checked = false);
private:
friend class QButtonPrivate;
QPointer<QButtonPrivate> pimpl;
};
#endif // QBUTTON_H

View File

@@ -1,229 +0,0 @@
/*
Copyright (C) 2011 by Mike McQuaid
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#include "qbutton.h"
#include "qocoa_mac.h"
#import "Foundation/NSAutoreleasePool.h"
#import "AppKit/NSButton.h"
#import "AppKit/NSFont.h"
class QButtonPrivate : public QObject
{
public:
QButtonPrivate(QButton *qButton, NSButton *nsButton, QButton::BezelStyle bezelStyle)
: QObject(qButton), qButton(qButton), nsButton(nsButton)
{
switch(bezelStyle) {
case QButton::Disclosure:
case QButton::Circular:
#ifdef __MAC_10_7
case QButton::Inline:
#endif
case QButton::RoundedDisclosure:
case QButton::HelpButton:
[nsButton setTitle:@""];
default:
break;
}
NSFont* font = 0;
switch(bezelStyle) {
case QButton::RoundRect:
font = [NSFont fontWithName:@"Lucida Grande" size:12];
break;
case QButton::Recessed:
font = [NSFont fontWithName:@"Lucida Grande Bold" size:12];
break;
#ifdef __MAC_10_7
case QButton::Inline:
font = [NSFont boldSystemFontOfSize:[NSFont systemFontSizeForControlSize:NSSmallControlSize]];
break;
#endif
default:
font = [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSRegularControlSize]];
break;
}
[nsButton setFont:font];
switch(bezelStyle) {
case QButton::Rounded:
qButton->setMinimumWidth(40);
qButton->setFixedHeight(24);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
break;
case QButton::RegularSquare:
case QButton::TexturedSquare:
qButton->setMinimumSize(14, 23);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
break;
case QButton::ShadowlessSquare:
qButton->setMinimumSize(5, 25);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
break;
case QButton::SmallSquare:
qButton->setMinimumSize(4, 21);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
break;
case QButton::TexturedRounded:
qButton->setMinimumSize(10, 22);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
break;
case QButton::RoundRect:
case QButton::Recessed:
qButton->setMinimumWidth(16);
qButton->setFixedHeight(18);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
break;
case QButton::Disclosure:
qButton->setMinimumWidth(13);
qButton->setFixedHeight(13);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
break;
case QButton::Circular:
qButton->setMinimumSize(16, 16);
qButton->setMaximumHeight(40);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
break;
case QButton::HelpButton:
case QButton::RoundedDisclosure:
qButton->setMinimumWidth(22);
qButton->setFixedHeight(22);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
break;
#ifdef __MAC_10_7
case QButton::Inline:
qButton->setMinimumWidth(10);
qButton->setFixedHeight(16);
qButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
break;
#endif
}
switch(bezelStyle) {
case QButton::Recessed:
[nsButton setButtonType:NSPushOnPushOffButton];
case QButton::Disclosure:
[nsButton setButtonType:NSOnOffButton];
default:
[nsButton setButtonType:NSMomentaryPushInButton];
}
[nsButton setBezelStyle:(__bridge NSBezelStyle)bezelStyle];
}
void clicked()
{
emit qButton->clicked(qButton->isChecked());
}
~QButtonPrivate() {
[[nsButton target] release];
[nsButton setTarget:nil];
}
QButton *qButton;
NSButton *nsButton;
};
@interface QButtonTarget : NSObject
{
@public
QPointer<QButtonPrivate> pimpl;
}
-(void)clicked;
@end
@implementation QButtonTarget
-(void)clicked {
Q_ASSERT(pimpl);
if (pimpl)
pimpl->clicked();
}
@end
QButton::QButton(QWidget *parent, BezelStyle bezelStyle) : QWidget(parent)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSButton *button = [[NSButton alloc] init];
pimpl = new QButtonPrivate(this, button, bezelStyle);
QButtonTarget *target = [[QButtonTarget alloc] init];
target->pimpl = pimpl;
[button setTarget:target];
[button setAction:@selector(clicked)];
setupLayout(button, this);
[button release];
[pool drain];
}
void QButton::setText(const QString &text)
{
Q_ASSERT(pimpl);
if (!pimpl)
return;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[pimpl->nsButton setTitle:fromQString(text)];
[pool drain];
}
void QButton::setImage(const QPixmap &image)
{
Q_ASSERT(pimpl);
if (pimpl)
[pimpl->nsButton setImage:fromQPixmap(image)];
}
void QButton::setChecked(bool checked)
{
Q_ASSERT(pimpl);
if (pimpl)
[pimpl->nsButton setState:checked];
}
void QButton::setCheckable(bool checkable)
{
const NSInteger cellMask = checkable ? NSChangeBackgroundCellMask : NSNoCellMask;
Q_ASSERT(pimpl);
if (pimpl)
[[pimpl->nsButton cell] setShowsStateBy:cellMask];
}
bool QButton::isChecked()
{
Q_ASSERT(pimpl);
if (!pimpl)
return false;
return [pimpl->nsButton state];
}

View File

@@ -1,89 +0,0 @@
/*
Copyright (C) 2011 by Mike McQuaid
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#include "qbutton.h"
#include <QToolBar>
#include <QToolButton>
#include <QPushButton>
#include <QVBoxLayout>
class QButtonPrivate : public QObject
{
public:
QButtonPrivate(QButton *button, QAbstractButton *abstractButton)
: QObject(button), abstractButton(abstractButton) {}
QPointer<QAbstractButton> abstractButton;
};
QButton::QButton(QWidget *parent, BezelStyle) : QWidget(parent)
{
QAbstractButton *button = 0;
if (qobject_cast<QToolBar*>(parent))
button = new QToolButton(this);
else
button = new QPushButton(this);
connect(button, SIGNAL(clicked()),
this, SIGNAL(clicked()));
pimpl = new QButtonPrivate(this, button);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setMargin(0);
layout->addWidget(button);
}
void QButton::setText(const QString &text)
{
Q_ASSERT(pimpl);
if (pimpl)
pimpl->abstractButton->setText(text);
}
void QButton::setImage(const QPixmap &image)
{
Q_ASSERT(pimpl);
if (pimpl)
pimpl->abstractButton->setIcon(image);
}
void QButton::setChecked(bool checked)
{
Q_ASSERT(pimpl);
if (pimpl)
pimpl->abstractButton->setChecked(checked);
}
void QButton::setCheckable(bool checkable)
{
Q_ASSERT(pimpl);
if (pimpl)
pimpl->abstractButton->setCheckable(checkable);
}
bool QButton::isChecked()
{
Q_ASSERT(pimpl);
if (!pimpl)
return false;
return pimpl->abstractButton->isChecked();
}

View File

@@ -1,29 +0,0 @@
#ifndef QPROGRESSINDICATORSPINNING_H
#define QPROGRESSINDICATORSPINNING_H
#include <QWidget>
#include <QPointer>
class QProgressIndicatorSpinningPrivate;
class QProgressIndicatorSpinning : public QWidget
{
Q_OBJECT
public:
// Matches NSProgressIndicatorThickness
enum Thickness {
Default = 14,
Small = 10,
Large = 18,
Aqua = 12
};
explicit QProgressIndicatorSpinning(QWidget *parent,
Thickness thickness = Default);
public slots:
void animate(bool animate = true);
private:
friend class QProgressIndicatorSpinningPrivate;
QPointer<QProgressIndicatorSpinningPrivate> pimpl;
};
#endif // QPROGRESSINDICATORSPINNING_H

View File

@@ -1,70 +0,0 @@
/*
Copyright (C) 2011 by Mike McQuaid
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#include "qprogressindicatorspinning.h"
#include "qocoa_mac.h"
#import "Foundation/NSAutoreleasePool.h"
#import "AppKit/NSProgressIndicator.h"
class QProgressIndicatorSpinningPrivate : public QObject
{
public:
QProgressIndicatorSpinningPrivate(QProgressIndicatorSpinning *qProgressIndicatorSpinning,
NSProgressIndicator *nsProgressIndicator)
: QObject(qProgressIndicatorSpinning), nsProgressIndicator(nsProgressIndicator) {}
NSProgressIndicator *nsProgressIndicator;
};
QProgressIndicatorSpinning::QProgressIndicatorSpinning(QWidget *parent,
Thickness thickness)
: QWidget(parent)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSProgressIndicator *progress = [[NSProgressIndicator alloc] init];
[progress setStyle:NSProgressIndicatorSpinningStyle];
pimpl = new QProgressIndicatorSpinningPrivate(this, progress);
setupLayout(progress, this);
setFixedSize(thickness, thickness);
[progress release];
[pool drain];
}
void QProgressIndicatorSpinning::animate(bool animate)
{
Q_ASSERT(pimpl);
if (!pimpl)
return;
if (animate)
[pimpl->nsProgressIndicator startAnimation:nil];
else
[pimpl->nsProgressIndicator stopAnimation:nil];
}

View File

@@ -1,72 +0,0 @@
/*
Copyright (C) 2011 by Mike McQuaid
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#include "qprogressindicatorspinning.h"
#include <QVBoxLayout>
#include <QMovie>
#include <QLabel>
class QProgressIndicatorSpinningPrivate : public QObject
{
public:
QProgressIndicatorSpinningPrivate(QProgressIndicatorSpinning *qProgressIndicatorSpinning,
QMovie *movie)
: QObject(qProgressIndicatorSpinning), movie(movie) {}
QPointer<QMovie> movie;
};
QProgressIndicatorSpinning::QProgressIndicatorSpinning(QWidget *parent,
Thickness thickness)
: QWidget(parent)
{
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setMargin(0);
QSize size(thickness, thickness);
QMovie *movie = new QMovie(this);
movie->setFileName(":/Qocoa/qprogressindicatorspinning_nonmac.gif");
movie->setScaledSize(size);
// Roughly match OSX speed.
movie->setSpeed(200);
pimpl = new QProgressIndicatorSpinningPrivate(this, movie);
QLabel *label = new QLabel(this);
label->setMovie(movie);
layout->addWidget(label);
setFixedSize(size);
}
void QProgressIndicatorSpinning::animate(bool animate)
{
Q_ASSERT(pimpl && pimpl->movie);
if (!(pimpl && pimpl->movie))
return;
if (animate)
pimpl->movie->start();
else
pimpl->movie->stop();
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -1,5 +0,0 @@
<RCC>
<qresource prefix="/Qocoa">
<file>qprogressindicatorspinning_nonmac.gif</file>
</qresource>
</RCC>

View File

@@ -1,7 +0,0 @@
<RCC>
<qresource prefix="/Qocoa">
<file>qsearchfield_nonmac_clear.png</file>
<file>qsearchfield_nonmac_magnifier_menu.png</file>
<file>qsearchfield_nonmac_magnifier.png</file>
</qresource>
</RCC>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

View File

@@ -1,5 +1,8 @@
cmake_minimum_required(VERSION 2.8.11)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -U__STRICT_ANSI__ -Wall -Woverloaded-virtual -Wno-sign-compare -fpermissive")
set(SINGLEAPP-SOURCES singleapplication.cpp singleapplication_p.cpp)
set(SINGLEAPP-MOC-HEADERS singleapplication.h singleapplication_p.h)

View File

@@ -169,7 +169,7 @@ bool SingleApplication::sendMessage( QByteArray message, int timeout )
d->connectToPrimary( timeout, SingleApplicationPrivate::Reconnect );
d->socket->write( message );
bool dataWritten = d->socket->flush();
d->socket->waitForBytesWritten( timeout );
bool dataWritten = d->socket->waitForBytesWritten( timeout );
d->socket->flush();
return dataWritten;
}

View File

@@ -114,7 +114,7 @@ public:
* @note sendMessage() will return false if invoked from the primary
* instance.
*/
bool sendMessage( QByteArray message, int timeout = 100 );
bool sendMessage( QByteArray message, int timeout = 1000 );
Q_SIGNALS:
void instanceStarted();

View File

@@ -169,7 +169,7 @@ bool SingleCoreApplication::sendMessage( QByteArray message, int timeout )
d->connectToPrimary( timeout, SingleCoreApplicationPrivate::Reconnect );
d->socket->write( message );
bool dataWritten = d->socket->flush();
d->socket->waitForBytesWritten( timeout );
bool dataWritten = d->socket->waitForBytesWritten( timeout );
d->socket->flush();
return dataWritten;
}

View File

@@ -114,7 +114,7 @@ public:
* @note sendMessage() will return false if invoked from the primary
* instance.
*/
bool sendMessage( QByteArray message, int timeout = 100 );
bool sendMessage( QByteArray message, int timeout = 1000 );
Q_SIGNALS:
void instanceStarted();

View File

@@ -1,6 +1,8 @@
cmake_minimum_required(VERSION 2.8.11)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-delete-non-virtual-dtor")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -U__STRICT_ANSI__ -fpermissive -Wall -Woverloaded-virtual -Wno-sign-compare -Wno-delete-non-virtual-dtor")
set(TAGLIB_SOVERSION_CURRENT 17)
set(TAGLIB_SOVERSION_REVISION 0)
@@ -19,8 +21,13 @@ else()
add_definitions(-DSYSTEM_BYTEORDER=2)
endif()
include(ConfigureChecks.cmake)
configure_file(config.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/config.h")
configure_file(taglib_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib_config.h)
add_definitions(-DHAVE_CONFIG_H)
add_definitions(-DTAGLIB_STATIC)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/toolkit

215
3rdparty/taglib/ConfigureChecks.cmake vendored Normal file
View File

@@ -0,0 +1,215 @@
include(CheckLibraryExists)
include(CheckTypeSize)
include(CheckCXXSourceCompiles)
# Check if the size of numeric types are suitable.
check_type_size("short" SIZEOF_SHORT)
if(NOT ${SIZEOF_SHORT} EQUAL 2)
message(FATAL_ERROR "TagLib requires that short is 16-bit wide.")
endif()
check_type_size("int" SIZEOF_INT)
if(NOT ${SIZEOF_INT} EQUAL 4)
message(FATAL_ERROR "TagLib requires that int is 32-bit wide.")
endif()
check_type_size("long long" SIZEOF_LONGLONG)
if(NOT ${SIZEOF_LONGLONG} EQUAL 8)
message(FATAL_ERROR "TagLib requires that long long is 64-bit wide.")
endif()
check_type_size("wchar_t" SIZEOF_WCHAR_T)
if(${SIZEOF_WCHAR_T} LESS 2)
message(FATAL_ERROR "TagLib requires that wchar_t is sufficient to store a UTF-16 char.")
endif()
check_type_size("float" SIZEOF_FLOAT)
if(NOT ${SIZEOF_FLOAT} EQUAL 4)
message(FATAL_ERROR "TagLib requires that float is 32-bit wide.")
endif()
check_type_size("double" SIZEOF_DOUBLE)
if(NOT ${SIZEOF_DOUBLE} EQUAL 8)
message(FATAL_ERROR "TagLib requires that double is 64-bit wide.")
endif()
# Determine which kind of atomic operations your compiler supports.
check_cxx_source_compiles("
#include <atomic>
int main() {
std::atomic_int x(1);
++x;
--x;
return 0;
}
" HAVE_STD_ATOMIC)
if(NOT HAVE_STD_ATOMIC)
check_cxx_source_compiles("
int main() {
volatile int x;
__sync_add_and_fetch(&x, 1);
int y = __sync_sub_and_fetch(&x, 1);
return 0;
}
" HAVE_GCC_ATOMIC)
if(NOT HAVE_GCC_ATOMIC)
check_cxx_source_compiles("
#include <libkern/OSAtomic.h>
int main() {
volatile int32_t x;
OSAtomicIncrement32Barrier(&x);
int32_t y = OSAtomicDecrement32Barrier(&x);
return 0;
}
" HAVE_MAC_ATOMIC)
if(NOT HAVE_MAC_ATOMIC)
check_cxx_source_compiles("
#include <windows.h>
int main() {
volatile LONG x;
InterlockedIncrement(&x);
LONG y = InterlockedDecrement(&x);
return 0;
}
" HAVE_WIN_ATOMIC)
if(NOT HAVE_WIN_ATOMIC)
check_cxx_source_compiles("
#include <ia64intrin.h>
int main() {
volatile int x;
__sync_add_and_fetch(&x, 1);
int y = __sync_sub_and_fetch(&x, 1);
return 0;
}
" HAVE_IA64_ATOMIC)
endif()
endif()
endif()
endif()
# Determine which kind of byte swap functions your compiler supports.
check_cxx_source_compiles("
int main() {
__builtin_bswap16(0);
__builtin_bswap32(0);
__builtin_bswap64(0);
return 0;
}
" HAVE_GCC_BYTESWAP)
if(NOT HAVE_GCC_BYTESWAP)
check_cxx_source_compiles("
#include <byteswap.h>
int main() {
__bswap_16(0);
__bswap_32(0);
__bswap_64(0);
return 0;
}
" HAVE_GLIBC_BYTESWAP)
if(NOT HAVE_GLIBC_BYTESWAP)
check_cxx_source_compiles("
#include <stdlib.h>
int main() {
_byteswap_ushort(0);
_byteswap_ulong(0);
_byteswap_uint64(0);
return 0;
}
" HAVE_MSC_BYTESWAP)
if(NOT HAVE_MSC_BYTESWAP)
check_cxx_source_compiles("
#include <libkern/OSByteOrder.h>
int main() {
OSSwapInt16(0);
OSSwapInt32(0);
OSSwapInt64(0);
return 0;
}
" HAVE_MAC_BYTESWAP)
if(NOT HAVE_MAC_BYTESWAP)
check_cxx_source_compiles("
#include <sys/endian.h>
int main() {
swap16(0);
swap32(0);
swap64(0);
return 0;
}
" HAVE_OPENBSD_BYTESWAP)
endif()
endif()
endif()
endif()
# Determine whether your compiler supports some safer version of vsprintf.
check_cxx_source_compiles("
#include <cstdio>
#include <cstdarg>
int main() {
char buf[20];
va_list args;
vsnprintf(buf, 20, \"%d\", args);
return 0;
}
" HAVE_VSNPRINTF)
if(NOT HAVE_VSNPRINTF)
check_cxx_source_compiles("
#include <cstdio>
#include <cstdarg>
int main() {
char buf[20];
va_list args;
vsprintf_s(buf, \"%d\", args);
return 0;
}
" HAVE_VSPRINTF_S)
endif()
# Determine whether your compiler supports ISO _strdup.
check_cxx_source_compiles("
#include <cstring>
int main() {
_strdup(0);
return 0;
}
" HAVE_ISO_STRDUP)
# Determine whether zlib is installed.
if(NOT ZLIB_SOURCE)
find_package(ZLIB)
if(ZLIB_FOUND)
set(HAVE_ZLIB 1)
else()
set(HAVE_ZLIB 0)
endif()
endif()
# Determine whether CppUnit is installed.
if(BUILD_TESTS AND NOT BUILD_SHARED_LIBS)
find_package(CppUnit)
if(NOT CppUnit_FOUND)
message(STATUS "CppUnit not found, disabling tests.")
set(BUILD_TESTS OFF)
endif()
endif()
# Detect WinRT mode
if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
set(PLATFORM WINRT 1)
endif()

View File

@@ -44,7 +44,7 @@
#include "apetag.h"
#include "apefooter.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
namespace
{
@@ -100,7 +100,7 @@ bool APE::File::isSupported(IOStream *stream)
////////////////////////////////////////////////////////////////////////////////
APE::File::File(FileName file, bool readProperties, Properties::ReadStyle) :
TagLib::File(file),
Strawberry_TagLib::TagLib::File(file),
d(new FilePrivate())
{
if(isOpen())
@@ -108,7 +108,7 @@ APE::File::File(FileName file, bool readProperties, Properties::ReadStyle) :
}
APE::File::File(IOStream *stream, bool readProperties, Properties::ReadStyle) :
TagLib::File(stream),
Strawberry_TagLib::TagLib::File(stream),
d(new FilePrivate())
{
if(isOpen())
@@ -120,7 +120,7 @@ APE::File::~File()
delete d;
}
TagLib::Tag *APE::File::tag() const
Strawberry_TagLib::TagLib::Tag *APE::File::tag() const
{
return &d->tag;
}

View File

@@ -38,6 +38,7 @@
#include "taglib_export.h"
#include "apeproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
class Tag;
@@ -56,16 +57,16 @@ namespace TagLib {
namespace APE {
//! An implementation of TagLib::File with APE specific methods
//! An implementation of Strawberry_TagLib::TagLib::File with APE specific methods
/*!
* This implements and provides an interface for APE files to the
* TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
* the abstract TagLib::File API as well as providing some additional
* Strawberry_TagLib::TagLib::Tag and Strawberry_TagLib::TagLib::AudioProperties interfaces by way of implementing
* the abstract Strawberry_TagLib::TagLib::File API as well as providing some additional
* information specific to APE files.
*/
class TAGLIB_EXPORT File : public TagLib::File
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::File
{
public:
/*!
@@ -113,7 +114,7 @@ namespace TagLib {
* Returns the Tag for this file. This will be an APE tag, an ID3v1 tag
* or a combination of the two.
*/
virtual TagLib::Tag *tag() const;
virtual Strawberry_TagLib::TagLib::Tag *tag() const;
/*!
* Implements the unified property interface -- export function.
@@ -231,5 +232,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -32,7 +32,7 @@
#include "apefooter.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace APE;
class APE::Footer::FooterPrivate

View File

@@ -29,6 +29,7 @@
#include "tbytevector.h"
#include "taglib_export.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace APE {
@@ -169,5 +170,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -28,7 +28,7 @@
#include "apeitem.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace APE;
class APE::Item::ItemPrivate

View File

@@ -30,6 +30,7 @@
#include "tstring.h"
#include "tstringlist.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace APE {
@@ -218,6 +219,7 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -36,7 +36,7 @@
#include "apetag.h"
#include "apefooter.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class APE::Properties::PropertiesPrivate
{

View File

@@ -33,6 +33,7 @@
#include "taglib_export.h"
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace APE {
@@ -139,5 +140,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -42,7 +42,7 @@
#include "apefooter.h"
#include "apeitem.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace APE;
namespace
@@ -91,13 +91,13 @@ public:
////////////////////////////////////////////////////////////////////////////////
APE::Tag::Tag() :
TagLib::Tag(),
Strawberry_TagLib::TagLib::Tag(),
d(new TagPrivate())
{
}
APE::Tag::Tag(TagLib::File *file, long footerLocation) :
TagLib::Tag(),
APE::Tag::Tag(Strawberry_TagLib::TagLib::File *file, long footerLocation) :
Strawberry_TagLib::TagLib::Tag(),
d(new TagPrivate())
{
d->file = file;

View File

@@ -34,6 +34,7 @@
#include "apeitem.h"
namespace Strawberry_TagLib {
namespace TagLib {
class File;
@@ -54,7 +55,7 @@ namespace TagLib {
//! An APE tag implementation
class TAGLIB_EXPORT Tag : public TagLib::Tag
class TAGLIB_EXPORT Tag : public Strawberry_TagLib::TagLib::Tag
{
public:
/*!
@@ -66,7 +67,7 @@ namespace TagLib {
* Create an APE tag and parse the data in \a file with APE footer at
* \a tagOffset.
*/
Tag(TagLib::File *file, long footerLocation);
Tag(Strawberry_TagLib::TagLib::File *file, long footerLocation);
/*!
* Destroys this Tag instance.
@@ -204,5 +205,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -31,7 +31,7 @@
#include "asffile.h"
#include "asfutils.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class ASF::Attribute::AttributePrivate : public RefCounter
{

View File

@@ -31,6 +31,7 @@
#include "taglib_export.h"
#include "asfpicture.h"
namespace Strawberry_TagLib {
namespace TagLib
{
@@ -80,7 +81,7 @@ namespace TagLib
* only one may be of type 1 and only one may be of type 2.
*
* The specification also states that the description of the picture can be no longer than 64 characters, but can be empty.
* WM/Picture attributes added with TagLib::ASF are not automatically validated to conform to ID3 specifications.
* WM/Picture attributes added with Strawberry_TagLib::TagLib::ASF are not automatically validated to conform to ID3 specifications.
* You must add code in your application to perform validations if you want to maintain complete compatibility with ID3.
*/
Attribute(const Picture &value);
@@ -204,5 +205,6 @@ namespace TagLib
}
}
}
#endif

View File

@@ -34,7 +34,7 @@
#include "asfproperties.h"
#include "asfutils.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class ASF::File::FilePrivate
{
@@ -113,7 +113,7 @@ class ASF::File::FilePrivate::UnknownObject : public ASF::File::FilePrivate::Bas
{
ByteVector myGuid;
public:
UnknownObject(const ByteVector &guid);
explicit UnknownObject(const ByteVector &guid);
ByteVector guid() const;
};
@@ -488,7 +488,7 @@ bool ASF::File::isSupported(IOStream *stream)
////////////////////////////////////////////////////////////////////////////////
ASF::File::File(FileName file, bool, Properties::ReadStyle) :
TagLib::File(file),
Strawberry_TagLib::TagLib::File(file),
d(new FilePrivate())
{
if(isOpen())
@@ -496,7 +496,7 @@ ASF::File::File(FileName file, bool, Properties::ReadStyle) :
}
ASF::File::File(IOStream *stream, bool, Properties::ReadStyle) :
TagLib::File(stream),
Strawberry_TagLib::TagLib::File(stream),
d(new FilePrivate())
{
if(isOpen())

View File

@@ -32,6 +32,7 @@
#include "asfproperties.h"
#include "asftag.h"
namespace Strawberry_TagLib {
namespace TagLib {
//! An implementation of ASF (WMA) metadata
@@ -39,11 +40,11 @@ namespace TagLib {
/*!
* This implements and provides an interface for ASF files to the
* TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
* the abstract TagLib::File API as well as providing some additional
* Strawberry_TagLib::TagLib::Tag and Strawberry_TagLib::TagLib::AudioProperties interfaces by way of implementing
* the abstract Strawberry_TagLib::TagLib::File API as well as providing some additional
* information specific to ASF files.
*/
class TAGLIB_EXPORT File : public TagLib::File
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::File
{
public:
@@ -79,7 +80,7 @@ namespace TagLib {
* Returns a pointer to the ASF tag of the file.
*
* ASF::Tag implements the tag interface, so this serves as the
* reimplementation of TagLib::File::tag().
* reimplementation of Strawberry_TagLib::TagLib::File::tag().
*
* \note The Tag <b>is still</b> owned by the ASF::File and should not be
* deleted by the user. It will be deleted when the file (object) is
@@ -134,5 +135,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -32,7 +32,7 @@
#include "asfpicture.h"
#include "asfutils.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class ASF::Picture::PicturePrivate : public RefCounter
{

View File

@@ -31,6 +31,7 @@
#include "taglib_export.h"
#include "attachedpictureframe.h"
namespace Strawberry_TagLib {
namespace TagLib
{
namespace ASF
@@ -218,5 +219,6 @@ namespace TagLib
};
}
}
}
#endif // ASFPICTURE_H

View File

@@ -27,7 +27,7 @@
#include <tstring.h>
#include "asfproperties.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class ASF::Properties::PropertiesPrivate
{

View File

@@ -30,6 +30,7 @@
#include "tstring.h"
#include "taglib_export.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace ASF {
@@ -182,5 +183,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -26,7 +26,7 @@
#include <tpropertymap.h>
#include "asftag.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class ASF::Tag::TagPrivate
{
@@ -40,7 +40,7 @@ public:
};
ASF::Tag::Tag() :
TagLib::Tag(),
Strawberry_TagLib::TagLib::Tag(),
d(new TagPrivate())
{
}
@@ -204,7 +204,7 @@ void ASF::Tag::addAttribute(const String &name, const Attribute &attribute)
bool ASF::Tag::isEmpty() const
{
return TagLib::Tag::isEmpty() &&
return Strawberry_TagLib::TagLib::Tag::isEmpty() &&
copyright().isEmpty() &&
rating().isEmpty() &&
d->attributeListMap.isEmpty();

View File

@@ -32,6 +32,7 @@
#include "taglib_export.h"
#include "asfattribute.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace ASF {
@@ -39,7 +40,7 @@ namespace TagLib {
typedef List<Attribute> AttributeList;
typedef Map<String, AttributeList> AttributeListMap;
class TAGLIB_EXPORT Tag : public TagLib::Tag {
class TAGLIB_EXPORT Tag : public Strawberry_TagLib::TagLib::Tag {
friend class File;
@@ -206,4 +207,5 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -30,6 +30,7 @@
#ifndef DO_NOT_DOCUMENT // tell Doxygen not to document this header
namespace Strawberry_TagLib {
namespace TagLib
{
namespace ASF
@@ -98,6 +99,7 @@ namespace TagLib
}
}
}
}
#endif

View File

@@ -43,7 +43,7 @@
#include "audioproperties.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
// This macro is a workaround for the fact that we can't add virtual functions.
// Should be true virtual functions in taglib2.

View File

@@ -28,6 +28,7 @@
#include "taglib_export.h"
namespace Strawberry_TagLib {
namespace TagLib {
//! A simple, abstract interface to common audio properties
@@ -35,7 +36,7 @@ namespace TagLib {
/*!
* The values here are common to most audio formats. For more specific, codec
* dependent values, please see see the subclasses APIs. This is meant to
* compliment the TagLib::File and TagLib::Tag APIs in providing a simple
* compliment the Strawberry_TagLib::TagLib::File and Strawberry_TagLib::TagLib::Tag APIs in providing a simple
* interface that is sufficient for most applications.
*/
@@ -123,5 +124,6 @@ namespace TagLib {
};
}
}
#endif

35
3rdparty/taglib/config.h.cmake vendored Normal file
View File

@@ -0,0 +1,35 @@
/* config.h. Generated by cmake from config.h.cmake */
#ifndef TAGLIB_CONFIG_H
#define TAGLIB_CONFIG_H
/* Defined if your compiler supports some byte swap functions */
#cmakedefine HAVE_GCC_BYTESWAP 1
#cmakedefine HAVE_GLIBC_BYTESWAP 1
#cmakedefine HAVE_MSC_BYTESWAP 1
#cmakedefine HAVE_MAC_BYTESWAP 1
#cmakedefine HAVE_OPENBSD_BYTESWAP 1
/* Defined if your compiler supports some atomic operations */
#cmakedefine HAVE_STD_ATOMIC 1
#cmakedefine HAVE_GCC_ATOMIC 1
#cmakedefine HAVE_MAC_ATOMIC 1
#cmakedefine HAVE_WIN_ATOMIC 1
#cmakedefine HAVE_IA64_ATOMIC 1
/* Defined if your compiler supports some safer version of vsprintf */
#cmakedefine HAVE_VSNPRINTF 1
#cmakedefine HAVE_VSPRINTF_S 1
/* Defined if your compiler supports ISO _strdup */
#cmakedefine HAVE_ISO_STRDUP 1
/* Defined if zlib is installed */
#cmakedefine HAVE_ZLIB 1
/* Indicates whether debug messages are shown even in release mode */
#cmakedefine TRACE_IN_RELEASE 1
#cmakedefine TESTS_DIR "@TESTS_DIR@"
#endif

View File

@@ -27,7 +27,7 @@
#include "tstringlist.h"
#include "tpropertymap.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace DSDIFF::DIIN;
class DSDIFF::DIIN::Tag::TagPrivate
@@ -41,7 +41,7 @@ public:
String artist;
};
DSDIFF::DIIN::Tag::Tag() : TagLib::Tag()
DSDIFF::DIIN::Tag::Tag() : Strawberry_TagLib::TagLib::Tag()
{
d = new TagPrivate;
}

View File

@@ -28,6 +28,7 @@
#include "tag.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace DSDIFF {
@@ -39,7 +40,7 @@ namespace TagLib {
*
* Only Title and Artist tags are supported
*/
class TAGLIB_EXPORT Tag : public TagLib::Tag
class TAGLIB_EXPORT Tag : public Strawberry_TagLib::TagLib::Tag
{
public:
Tag();
@@ -145,6 +146,7 @@ namespace TagLib {
}
}
}
}
#endif

View File

@@ -33,7 +33,7 @@
#include "tagunion.h"
#include "dsdifffile.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
struct Chunk64
{
@@ -115,7 +115,7 @@ bool DSDIFF::File::isSupported(IOStream *stream)
////////////////////////////////////////////////////////////////////////////////
DSDIFF::File::File(FileName file, bool readProperties,
Properties::ReadStyle propertiesStyle) : TagLib::File(file)
Properties::ReadStyle propertiesStyle) : Strawberry_TagLib::TagLib::File(file)
{
d = new FilePrivate;
d->endianness = BigEndian;
@@ -124,7 +124,7 @@ DSDIFF::File::File(FileName file, bool readProperties,
}
DSDIFF::File::File(IOStream *stream, bool readProperties,
Properties::ReadStyle propertiesStyle) : TagLib::File(stream)
Properties::ReadStyle propertiesStyle) : Strawberry_TagLib::TagLib::File(stream)
{
d = new FilePrivate;
d->endianness = BigEndian;
@@ -137,7 +137,7 @@ DSDIFF::File::~File()
delete d;
}
TagLib::Tag *DSDIFF::File::tag() const
Strawberry_TagLib::TagLib::Tag *DSDIFF::File::tag() const
{
return &d->tag;
}

View File

@@ -31,6 +31,7 @@
#include "dsdiffproperties.h"
#include "dsdiffdiintag.h"
namespace Strawberry_TagLib {
namespace TagLib {
//! An implementation of DSDIFF metadata
@@ -49,16 +50,16 @@ namespace TagLib {
namespace DSDIFF {
//! An implementation of TagLib::File with DSDIFF specific methods
//! An implementation of Strawberry_TagLib::TagLib::File with DSDIFF specific methods
/*!
* This implements and provides an interface for DSDIFF files to the
* TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
* the abstract TagLib::File API as well as providing some additional
* Strawberry_TagLib::TagLib::Tag and Strawberry_TagLib::TagLib::AudioProperties interfaces by way of implementing
* the abstract Strawberry_TagLib::TagLib::File API as well as providing some additional
* information specific to DSDIFF files.
*/
class TAGLIB_EXPORT File : public TagLib::File
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::File
{
public:
/*!
@@ -255,6 +256,7 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -28,7 +28,7 @@
#include "dsdiffproperties.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class DSDIFF::Properties::PropertiesPrivate
{

View File

@@ -28,6 +28,7 @@
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace DSDIFF {
@@ -78,6 +79,7 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -32,7 +32,7 @@
#include "dsffile.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
// The DSF specification is located at http://dsd-guide.com/sites/default/files/white-papers/DSFFileFormatSpec_E.pdf
@@ -40,8 +40,10 @@ class DSF::File::FilePrivate
{
public:
FilePrivate() :
properties(0),
tag(0)
fileSize(0),
metadataOffset(0),
properties(nullptr),
tag(nullptr)
{
}
@@ -74,7 +76,7 @@ bool DSF::File::isSupported(IOStream *stream)
DSF::File::File(FileName file, bool readProperties,
Properties::ReadStyle propertiesStyle) :
TagLib::File(file),
Strawberry_TagLib::TagLib::File(file),
d(new FilePrivate())
{
if(isOpen())
@@ -83,7 +85,7 @@ DSF::File::File(FileName file, bool readProperties,
DSF::File::File(IOStream *stream, bool readProperties,
Properties::ReadStyle propertiesStyle) :
TagLib::File(stream),
Strawberry_TagLib::TagLib::File(stream),
d(new FilePrivate())
{
if(isOpen())

View File

@@ -30,6 +30,7 @@
#include "id3v2tag.h"
#include "dsfproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
//! An implementation of DSF metadata
@@ -42,16 +43,16 @@ namespace TagLib {
namespace DSF {
//! An implementation of TagLib::File with DSF specific methods
//! An implementation of Strawberry_TagLib::TagLib::File with DSF specific methods
/*!
* This implements and provides an interface for DSF files to the
* TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
* the abstract TagLib::File API as well as providing some additional
* Strawberry_TagLib::TagLib::Tag and Strawberry_TagLib::TagLib::AudioProperties interfaces by way of implementing
* the abstract Strawberry_TagLib::TagLib::File API as well as providing some additional
* information specific to DSF files.
*/
class TAGLIB_EXPORT File : public TagLib::File
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::File
{
public:
/*!
@@ -123,6 +124,7 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -28,7 +28,7 @@
#include "dsfproperties.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class DSF::Properties::PropertiesPrivate
{
@@ -66,7 +66,7 @@ public:
// public members
////////////////////////////////////////////////////////////////////////////////
DSF::Properties::Properties(const ByteVector &data, ReadStyle style) : TagLib::AudioProperties(style)
DSF::Properties::Properties(const ByteVector &data, ReadStyle style) : Strawberry_TagLib::TagLib::AudioProperties(style)
{
d = new PropertiesPrivate;
read(data);

View File

@@ -28,6 +28,7 @@
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace DSF {
@@ -41,7 +42,7 @@ namespace TagLib {
* API.
*/
class TAGLIB_EXPORT Properties : public TagLib::AudioProperties
class TAGLIB_EXPORT Properties : public Strawberry_TagLib::TagLib::AudioProperties
{
public:
/*!
@@ -87,6 +88,7 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -55,7 +55,7 @@
#include "dsffile.h"
#include "dsdifffile.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
namespace
{
@@ -74,7 +74,7 @@ namespace
return file;
}
return 0;
return nullptr;
}
// Detect the file type based on the file extension.
@@ -98,7 +98,7 @@ namespace
// that a default file type resolver is created.
if(ext.isEmpty())
return 0;
return nullptr;
// .oga can be any audio in the Ogg container. So leave it to content-based detection.
@@ -142,7 +142,7 @@ namespace
if(ext == "DSF")
return new DSF::File(stream, readAudioProperties, audioPropertiesStyle);
return 0;
return nullptr;
}
// Detect the file type based on the actual content of the stream.
@@ -194,7 +194,7 @@ namespace
delete file;
}
return 0;
return nullptr;
}
// Internal function that supports FileRef::create().
@@ -220,7 +220,7 @@ namespace
ext = s.substr(pos + 1).upper();
if(ext.isEmpty())
return 0;
return nullptr;
if(ext == "MP3")
return new MPEG::File(fileName, ID3v2::FrameFactory::instance(), readAudioProperties, audioPropertiesStyle);
@@ -270,7 +270,7 @@ namespace
if(ext == "DSF")
return new DSF::File(fileName, readAudioProperties, audioPropertiesStyle);
return 0;
return nullptr;
}
}
@@ -335,7 +335,7 @@ Tag *FileRef::tag() const
{
if(isNull()) {
debug("FileRef::tag() - Called without a valid file.");
return 0;
return nullptr;
}
return d->file->tag();
}
@@ -344,7 +344,7 @@ AudioProperties *FileRef::audioProperties() const
{
if(isNull()) {
debug("FileRef::audioProperties() - Called without a valid file.");
return 0;
return nullptr;
}
return d->file->audioProperties();
}

View File

@@ -32,6 +32,7 @@
#include "taglib_export.h"
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
class Tag;
@@ -41,7 +42,7 @@ namespace TagLib {
/*!
* FileRef exists to provide a minimal, generic and value-based wrapper around
* a File. It is lightweight and implicitly shared, and as such suitable for
* pass-by-value use. This hides some of the uglier details of TagLib::File
* pass-by-value use. This hides some of the uglier details of Strawberry_TagLib::TagLib::File
* and the non-generic portions of the concrete file implementations.
*
* This class is useful in a "simple usage" situation where it is desirable
@@ -72,10 +73,10 @@ namespace TagLib {
*
* class MyFileTypeResolver : FileTypeResolver
* {
* TagLib::File *createFile(TagLib::FileName *fileName, bool, AudioProperties::ReadStyle) const
* Strawberry_TagLib::TagLib::File *createFile(Strawberry_TagLib::TagLib::FileName *fileName, bool, AudioProperties::ReadStyle) const
* {
* if(someCheckForAnMP3File(fileName))
* return new TagLib::MPEG::File(fileName);
* return new Strawberry_TagLib::TagLib::MPEG::File(fileName);
* return 0;
* }
* }
@@ -282,6 +283,7 @@ namespace TagLib {
FileRefPrivate *d;
};
} // namespace TagLib
}
} // namespace Strawberry_TagLib::TagLib
#endif

View File

@@ -41,7 +41,7 @@
#include "flacmetadatablock.h"
#include "flacunknownmetadatablock.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
namespace
{
@@ -60,7 +60,7 @@ namespace
class FLAC::File::FilePrivate
{
public:
FilePrivate(const ID3v2::FrameFactory *frameFactory = ID3v2::FrameFactory::instance()) :
explicit FilePrivate(const ID3v2::FrameFactory *frameFactory = ID3v2::FrameFactory::instance()) :
ID3v2FrameFactory(frameFactory),
ID3v2Location(-1),
ID3v2OriginalSize(0),
@@ -112,7 +112,7 @@ bool FLAC::File::isSupported(IOStream *stream)
////////////////////////////////////////////////////////////////////////////////
FLAC::File::File(FileName file, bool readProperties, Properties::ReadStyle) :
TagLib::File(file),
Strawberry_TagLib::TagLib::File(file),
d(new FilePrivate())
{
if(isOpen())
@@ -121,7 +121,7 @@ FLAC::File::File(FileName file, bool readProperties, Properties::ReadStyle) :
FLAC::File::File(FileName file, ID3v2::FrameFactory *frameFactory,
bool readProperties, Properties::ReadStyle) :
TagLib::File(file),
Strawberry_TagLib::TagLib::File(file),
d(new FilePrivate(frameFactory))
{
if(isOpen())
@@ -130,7 +130,7 @@ FLAC::File::File(FileName file, ID3v2::FrameFactory *frameFactory,
FLAC::File::File(IOStream *stream, ID3v2::FrameFactory *frameFactory,
bool readProperties, Properties::ReadStyle) :
TagLib::File(stream),
Strawberry_TagLib::TagLib::File(stream),
d(new FilePrivate(frameFactory))
{
if(isOpen())
@@ -142,7 +142,7 @@ FLAC::File::~File()
delete d;
}
TagLib::Tag *FLAC::File::tag() const
Strawberry_TagLib::TagLib::Tag *FLAC::File::tag() const
{
return &d->tag;
}

View File

@@ -34,6 +34,7 @@
#include "flacpicture.h"
#include "flacproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
class Tag;
@@ -54,16 +55,16 @@ namespace TagLib {
namespace FLAC {
//! An implementation of TagLib::File with FLAC specific methods
//! An implementation of Strawberry_TagLib::TagLib::File with FLAC specific methods
/*!
* This implements and provides an interface for FLAC files to the
* TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
* the abstract TagLib::File API as well as providing some additional
* Strawberry_TagLib::TagLib::Tag and Strawberry_TagLib::TagLib::AudioProperties interfaces by way of implementing
* the abstract Strawberry_TagLib::TagLib::File API as well as providing some additional
* information specific to FLAC files.
*/
class TAGLIB_EXPORT File : public TagLib::File
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::File
{
public:
/*!
@@ -139,7 +140,7 @@ namespace TagLib {
* \see ID3v1Tag()
* \see XiphComment()
*/
virtual TagLib::Tag *tag() const;
virtual Strawberry_TagLib::TagLib::Tag *tag() const;
/*!
* Implements the unified property interface -- export function.
@@ -339,5 +340,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -27,7 +27,7 @@
#include <tdebug.h>
#include "flacmetadatablock.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class FLAC::MetadataBlock::MetadataBlockPrivate
{

View File

@@ -30,6 +30,7 @@
#include "tbytevector.h"
#include "taglib_export.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace FLAC {
@@ -71,5 +72,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -27,7 +27,7 @@
#include <tdebug.h>
#include "flacpicture.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class FLAC::Picture::PicturePrivate
{

View File

@@ -32,6 +32,7 @@
#include "taglib_export.h"
#include "flacmetadatablock.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace FLAC {
@@ -204,5 +205,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -29,7 +29,7 @@
#include "flacproperties.h"
#include "flacfile.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class FLAC::Properties::PropertiesPrivate
{

View File

@@ -29,6 +29,7 @@
#include "taglib_export.h"
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace FLAC {
@@ -144,5 +145,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -28,7 +28,7 @@
#include <tstring.h>
#include "flacunknownmetadatablock.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class FLAC::UnknownMetadataBlock::UnknownMetadataBlockPrivate
{

View File

@@ -31,6 +31,7 @@
#include "taglib_export.h"
#include "flacmetadatablock.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace FLAC {
@@ -77,5 +78,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -30,13 +30,13 @@
#include "modfileprivate.h"
#include "tpropertymap.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace IT;
class IT::File::FilePrivate
{
public:
FilePrivate(AudioProperties::ReadStyle propertiesStyle)
explicit FilePrivate(AudioProperties::ReadStyle propertiesStyle)
: tag(), properties(propertiesStyle)
{
}

View File

@@ -29,6 +29,7 @@
#include "modtag.h"
#include "itproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace IT {
@@ -105,5 +106,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -26,7 +26,7 @@
#include "itproperties.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace IT;
class IT::Properties::PropertiesPrivate

View File

@@ -29,6 +29,7 @@
#include "taglib.h"
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace IT {
class TAGLIB_EXPORT Properties : public AudioProperties {
@@ -103,5 +104,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -30,13 +30,13 @@
#include "modfileprivate.h"
#include "tpropertymap.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace Mod;
class Mod::File::FilePrivate
{
public:
FilePrivate(AudioProperties::ReadStyle propertiesStyle)
explicit FilePrivate(AudioProperties::ReadStyle propertiesStyle)
: properties(propertiesStyle)
{
}

View File

@@ -33,11 +33,12 @@
#include "modtag.h"
#include "modproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace Mod {
class TAGLIB_EXPORT File : public TagLib::Mod::FileBase
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::Mod::FileBase
{
public:
/*!
@@ -110,5 +111,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -27,14 +27,14 @@
#include "tdebug.h"
#include "modfilebase.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace Mod;
Mod::FileBase::FileBase(FileName file) : TagLib::File(file)
Mod::FileBase::FileBase(FileName file) : Strawberry_TagLib::TagLib::File(file)
{
}
Mod::FileBase::FileBase(IOStream *stream) : TagLib::File(stream)
Mod::FileBase::FileBase(IOStream *stream) : Strawberry_TagLib::TagLib::File(stream)
{
}

View File

@@ -34,11 +34,12 @@
#include <algorithm>
namespace Strawberry_TagLib {
namespace TagLib {
namespace Mod {
class TAGLIB_EXPORT FileBase : public TagLib::File
class TAGLIB_EXPORT FileBase : public Strawberry_TagLib::TagLib::File
{
protected:
FileBase(FileName file);
@@ -62,5 +63,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -26,7 +26,7 @@
#include "modproperties.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace Mod;
class Mod::Properties::PropertiesPrivate

View File

@@ -29,6 +29,7 @@
#include "taglib.h"
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace Mod {
@@ -67,5 +68,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -28,7 +28,7 @@
#include "tstringlist.h"
#include "tpropertymap.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
using namespace Mod;
class Mod::Tag::TagPrivate
@@ -44,7 +44,7 @@ public:
};
Mod::Tag::Tag() :
TagLib::Tag(),
Strawberry_TagLib::TagLib::Tag(),
d(new TagPrivate())
{
}

View File

@@ -28,6 +28,7 @@
#include "tag.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace Mod {
@@ -44,7 +45,7 @@ namespace TagLib {
* but it is common practice to abuse instrument/sample/pattern
* names as multiline comments. TagLib does so as well.
*/
class TAGLIB_EXPORT Tag : public TagLib::Tag
class TAGLIB_EXPORT Tag : public Strawberry_TagLib::TagLib::Tag
{
public:
Tag();
@@ -190,5 +191,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -29,7 +29,7 @@
#include <tstring.h>
#include "mp4atom.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
const char *MP4::Atom::containers[11] = {
"moov", "udta", "mdia", "meta", "ilst",
@@ -118,7 +118,7 @@ MP4::Atom::find(const char *name1, const char *name2, const char *name3, const c
return (*it)->find(name2, name3, name4);
}
}
return 0;
return nullptr;
}
MP4::AtomList
@@ -178,7 +178,7 @@ MP4::Atoms::find(const char *name1, const char *name2, const char *name3, const
return (*it)->find(name2, name3, name4);
}
}
return 0;
return nullptr;
}
MP4::AtomList

View File

@@ -33,12 +33,13 @@
#include "tfile.h"
#include "tlist.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace MP4 {
class Atom;
typedef TagLib::List<Atom *> AtomList;
typedef Strawberry_TagLib::TagLib::List<Atom *> AtomList;
enum AtomDataType
{
@@ -72,7 +73,7 @@ namespace TagLib {
ByteVector data;
};
typedef TagLib::List<AtomData> AtomDataList;
typedef Strawberry_TagLib::TagLib::List<AtomData> AtomDataList;
class Atom
{
@@ -84,7 +85,7 @@ namespace TagLib {
AtomList findall(const char *name, bool recursive = false);
long offset;
long length;
TagLib::ByteVector name;
Strawberry_TagLib::TagLib::ByteVector name;
AtomList children;
private:
static const int numContainers = 11;
@@ -105,6 +106,7 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -28,7 +28,7 @@
#include "trefcounter.h"
#include "mp4coverart.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class MP4::CoverArt::CoverArtPrivate : public RefCounter
{

View File

@@ -31,6 +31,7 @@
#include "taglib_export.h"
#include "mp4atom.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace MP4 {
@@ -80,5 +81,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -32,7 +32,7 @@
#include "mp4tag.h"
#include "mp4file.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
namespace
{
@@ -88,7 +88,7 @@ bool MP4::File::isSupported(IOStream *stream)
////////////////////////////////////////////////////////////////////////////////
MP4::File::File(FileName file, bool readProperties, AudioProperties::ReadStyle) :
TagLib::File(file),
Strawberry_TagLib::TagLib::File(file),
d(new FilePrivate())
{
if(isOpen())
@@ -96,7 +96,7 @@ MP4::File::File(FileName file, bool readProperties, AudioProperties::ReadStyle)
}
MP4::File::File(IOStream *stream, bool readProperties, AudioProperties::ReadStyle) :
TagLib::File(stream),
Strawberry_TagLib::TagLib::File(stream),
d(new FilePrivate())
{
if(isOpen())

View File

@@ -32,6 +32,7 @@
#include "mp4properties.h"
#include "mp4tag.h"
namespace Strawberry_TagLib {
namespace TagLib {
//! An implementation of MP4 (AAC, ALAC, ...) metadata
@@ -41,11 +42,11 @@ namespace TagLib {
/*!
* This implements and provides an interface for MP4 files to the
* TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
* the abstract TagLib::File API as well as providing some additional
* Strawberry_TagLib::TagLib::Tag and Strawberry_TagLib::TagLib::AudioProperties interfaces by way of implementing
* the abstract Strawberry_TagLib::TagLib::File API as well as providing some additional
* information specific to MP4 files.
*/
class TAGLIB_EXPORT File : public TagLib::File
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::File
{
public:
/*!
@@ -78,7 +79,7 @@ namespace TagLib {
* Returns a pointer to the MP4 tag of the file.
*
* MP4::Tag implements the tag interface, so this serves as the
* reimplementation of TagLib::File::tag().
* reimplementation of Strawberry_TagLib::TagLib::File::tag().
*
* \note The Tag <b>is still</b> owned by the MP4::File and should not be
* deleted by the user. It will be deleted when the file (object) is
@@ -139,5 +140,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -28,7 +28,7 @@
#include "trefcounter.h"
#include "mp4item.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class MP4::Item::ItemPrivate : public RefCounter
{

View File

@@ -30,6 +30,7 @@
#include "mp4coverart.h"
#include "taglib_export.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace MP4 {
@@ -89,5 +90,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -29,7 +29,7 @@
#include "mp4atom.h"
#include "mp4properties.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class MP4::Properties::PropertiesPrivate
{
@@ -175,11 +175,11 @@ MP4::Properties::read(File *file, Atoms *atoms)
debug("MP4: Atom 'trak.mdia.mdhd' is smaller than expected");
return;
}
unit = data.toLongLong(28U);
length = data.toLongLong(36U);
unit = data.toUInt(28U);
length = data.toLongLong(32U);
}
else {
if(data.size() < 24 + 4) {
if(data.size() < 24 + 8) {
debug("MP4: Atom 'trak.mdia.mdhd' is smaller than expected");
return;
}

View File

@@ -29,6 +29,7 @@
#include "taglib_export.h"
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace MP4 {
@@ -116,5 +117,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -30,7 +30,7 @@
#include "mp4tag.h"
#include "id3v1genres.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class MP4::Tag::TagPrivate
{
@@ -39,7 +39,7 @@ public:
file(0),
atoms(0) {}
TagLib::File *file;
Strawberry_TagLib::TagLib::File *file;
Atoms *atoms;
ItemMap items;
};
@@ -49,7 +49,7 @@ MP4::Tag::Tag() :
{
}
MP4::Tag::Tag(TagLib::File *file, MP4::Atoms *atoms) :
MP4::Tag::Tag(Strawberry_TagLib::TagLib::File *file, MP4::Atoms *atoms) :
d(new TagPrivate())
{
d->file = file;

View File

@@ -35,6 +35,7 @@
#include "mp4atom.h"
#include "mp4item.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace MP4 {
@@ -42,14 +43,14 @@ namespace TagLib {
/*!
* \deprecated
*/
typedef TagLib::Map<String, Item> ItemListMap;
typedef TagLib::Map<String, Item> ItemMap;
typedef Strawberry_TagLib::TagLib::Map<String, Item> ItemListMap;
typedef Strawberry_TagLib::TagLib::Map<String, Item> ItemMap;
class TAGLIB_EXPORT Tag: public TagLib::Tag
class TAGLIB_EXPORT Tag: public Strawberry_TagLib::TagLib::Tag
{
public:
Tag();
Tag(TagLib::File *file, Atoms *atoms);
Tag(Strawberry_TagLib::TagLib::File *file, Atoms *atoms);
virtual ~Tag();
bool save();
@@ -153,5 +154,6 @@ namespace TagLib {
}
}
}
#endif

View File

@@ -36,7 +36,7 @@
#include "apetag.h"
#include "apefooter.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
namespace
{
@@ -93,7 +93,7 @@ bool MPC::File::isSupported(IOStream *stream)
////////////////////////////////////////////////////////////////////////////////
MPC::File::File(FileName file, bool readProperties, Properties::ReadStyle) :
TagLib::File(file),
Strawberry_TagLib::TagLib::File(file),
d(new FilePrivate())
{
if(isOpen())
@@ -101,7 +101,7 @@ MPC::File::File(FileName file, bool readProperties, Properties::ReadStyle) :
}
MPC::File::File(IOStream *stream, bool readProperties, Properties::ReadStyle) :
TagLib::File(stream),
Strawberry_TagLib::TagLib::File(stream),
d(new FilePrivate())
{
if(isOpen())
@@ -113,7 +113,7 @@ MPC::File::~File()
delete d;
}
TagLib::Tag *MPC::File::tag() const
Strawberry_TagLib::TagLib::Tag *MPC::File::tag() const
{
return &d->tag;
}

View File

@@ -34,6 +34,7 @@
#include "tlist.h"
namespace Strawberry_TagLib {
namespace TagLib {
class Tag;
@@ -53,17 +54,17 @@ namespace TagLib {
namespace MPC {
//! An implementation of TagLib::File with MPC specific methods
//! An implementation of Strawberry_TagLib::TagLib::File with MPC specific methods
/*!
* This implements and provides an interface for MPC files to the
* TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
* the abstract TagLib::File API as well as providing some additional
* Strawberry_TagLib::TagLib::Tag and Strawberry_TagLib::TagLib::AudioProperties interfaces by way of implementing
* the abstract Strawberry_TagLib::TagLib::File API as well as providing some additional
* information specific to MPC files.
* The only invalid tag combination supported is an ID3v1 tag after an APE tag.
*/
class TAGLIB_EXPORT File : public TagLib::File
class TAGLIB_EXPORT File : public Strawberry_TagLib::TagLib::File
{
public:
/*!
@@ -113,7 +114,7 @@ namespace TagLib {
* Returns the Tag for this file. This will be an APE tag, an ID3v1 tag
* or a combination of the two.
*/
virtual TagLib::Tag *tag() const;
virtual Strawberry_TagLib::TagLib::Tag *tag() const;
/*!
* Implements the unified property interface -- export function.
@@ -234,5 +235,6 @@ namespace TagLib {
};
}
}
}
#endif

View File

@@ -31,7 +31,7 @@
#include "mpcproperties.h"
#include "mpcfile.h"
using namespace TagLib;
using namespace Strawberry_TagLib::TagLib;
class MPC::Properties::PropertiesPrivate
{

View File

@@ -29,6 +29,7 @@
#include "taglib_export.h"
#include "audioproperties.h"
namespace Strawberry_TagLib {
namespace TagLib {
namespace MPC {
@@ -154,5 +155,6 @@ namespace TagLib {
};
}
}
}
#endif

Some files were not shown because too many files have changed in this diff Show More