summaryrefslogtreecommitdiff
path: root/libjuicer
AgeCommit message (Collapse)AuthorFilesLines
2013-04-10Get labels from musicbrainz.Phillip Wood1-0/+35
To disambiguate between albums with the same disc ID it would be useful to display the recording label. Parse the list of recording labels provided by musicbrainz and store them in AlbumDetails. https://bugzilla.gnome.org/show_bug.cgi?id=674926
2013-04-10Add label to AlbumDetails.Phillip Wood2-1/+18
To disambiguate between albums with the same disc ID it would be useful to display the recording label. NB musicbrainz provides a list of recording labels for each release. https://bugzilla.gnome.org/show_bug.cgi?id=674926
2013-04-10Get disc count from musicbrainz.Phillip Wood1-0/+5
Helps to tell multiple releases apart where one is a normal release and the other is a special release with a bonus disc. https://bugzilla.gnome.org/show_bug.cgi?id=674926
2013-04-10Add disc count to AlbumDetails.Phillip Wood1-0/+1
Helps to tell multiple releases apart where one is a normal release and the other is a special release with a bonus disc. https://bugzilla.gnome.org/show_bug.cgi?id=674926
2013-04-10Get country name ISO code.Phillip Wood3-1/+132
Musicbrainz returns the country as a 2 letter ISO country code. Add functions based on totem's language code handling to convert that code to the country name and store the name, rather than the code in AlbumDetails::country. Adds a dependency on iso-codes. https://bugzilla.gnome.org/show_bug.cgi?id=674926
2013-04-10mb5: Ignore artist credits and track title from recordingsChristophe Fergeau1-6/+10
Quoting Calvin Walton from https://bugzilla.gnome.org/show_bug.cgi?id=690903#c8: "The fallback order for the sound-juicer track artist should be as follows: - Use the track/artist-credit if present - Otherwise use the recording/artist-credit if present - As a final fallback, use the release/artist-credit The fallback order for the sound-juicer track name should be as follows: - Use the track/title if present - Otherwise use the recording/title"
2012-09-06Add sj_str_is_empty (const char *s)Phillip Wood2-1/+17
utility function to test if string is NULL, NUL or just ascii space. https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-09-06Set composer sortname tag when extractingPhillip Wood1-0/+7
https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-09-06Set composer tag when extractingPhillip Wood1-0/+7
https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-07-03Do initial port to GStreamer 1.0Sebastian Dröge1-6/+8
2012-06-16all: Fix GThread API changes in GLib 2.32Bastien Nocera1-11/+1
https://bugzilla.gnome.org/show_bug.cgi?id=676748
2012-06-16Don't leak AlbumDetails::artists and TrackDetails::artistsChristophe Fergeau1-1/+2
Issue found with valgrind
2012-06-16Use musicbrainz5, drop earlier versionsJon Dowland7-752/+214
Update sound-juicer to use version 5 of musicbrainz. This is mostly a straight substitution (MUSICBRAINZ4→MUSICBRAINZ5, Mb4→Mb5, and so on). routines: Drop conditional support for version 3 of the API, leaving 5 only. https://bugzilla.gnome.org/show_bug.cgi?id=676749
2012-06-16Remove call to deprecated mb4_releasegroup_get_typePhillip Wood1-1/+1
Libmusicbrainz 4.0.3 deprecates this in favor of mb4_releasegroup_get_primarytype https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Use relationlist_list_foreach_relation in fill_relationsChristophe Fergeau1-54/+52
Now that we have a helper to iterate over all relations, better to use it as much as possible. It would probably be more efficient to have a relationlist_list_foreach helper iterating over RelationList items contained in a RelationListList, and a relationlist_foreach helper iterating over Relation items contained in a RelationList. This would allow fill_relations to avoid iterating over and over on the RelationListList while it's always only interested in the 'url' RelationLists. https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Remove deprecated libmusicbrainz methods.Phillip Wood1-2/+12
libmusicbrainz 4.0.1 deprecates the mb4_xxx_get_relationlist methods in favor of mb4_xxx_get_relationlistlist methods to enable access to all the relationlists associated with an object. Loop over all lists instead of just the one that was returned with mb4_xxx_get_relationlist. https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Fill album composer using track composersPhillip Wood1-0/+38
Musicbrainz relations do not provide an album composer. If all the tracks have the same or have no composer use the composer and composer_sortname from the first track, if they have differing composers set the album composer and composer_sortname to "Various Composers". https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Factor code iterating over relationsChristophe Fergeau1-49/+39
fill_work_relations and fill_recording_relations are using the same code to iterate over the relations contained in a RelationListList. This commit moves the common code in a helper function and changes these 2 functions to use it. https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Get composer metadata from musicbrainz relationsPhillip Wood1-10/+115
In Musicbrainz composers are related to works via composer relationships and works are in turn related to recordings via performance relationships. Use these to fill the composer metadata. This could easily be extended to arrangers and lyricists. Musicbrainz allows more than one relationship list to be associated with any given object, however libmusicbrainz 4.0.0 only supported retrieving one of them. This lead to problems getting the composer data for some albums. Thanks go Andy Hawkins, the libmusicbrainz maintainer for extending the API in version 4.0.1 to support retrieving all relationship lists for an object. Get track duration data from Mb4Track instead of Mb4Recording as the track data is more accurate. (During testing several albums had no duration data in their recording objects and some had incorrect data.) This is how we got the track duration when we used libmusicbrainz3 and it was reliable then. https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Add composer sortname to album dataPhillip Wood2-0/+2
https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Add composer sortname to track dataPhillip Wood2-1/+2
https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Add composer field to album dataPhillip Wood2-0/+2
https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Add composer field to track dataPhillip Wood2-0/+2
https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-06-16Remove trailing whitespacePhillip Wood13-31/+31
Editors that strip trailing whitespace litter code changes with extra changes from striping the whitespace. Prevent this by stripping all trailing whitespace with sed -i 's/ *$//' {src/libjuicer}/*.[ch] https://bugzilla.gnome.org/show_bug.cgi?id=661646
2012-05-14Don't leak AlbumDetails::artist_idChristophe Fergeau1-0/+1
https://bugzilla.gnome.org/show_bug.cgi?id=676000
2012-01-13mb4: kill SjMb4TrackDetailsmusicbrainzChristophe Fergeau3-18/+5
The only addition to TrackDetails was the artist list, which this commit adds to TrackDetails.
2012-01-13mb4: kill SjMb4AlbumDetailsChristophe Fergeau3-74/+31
Move the useful bits to AlbumDetails, and remove the other attributes which were added for completeness but are not really useful to CD ripping.
2012-01-13mb4: move SjMb4ArtistDetails to generic codeChristophe Fergeau3-35/+37
Artist details will only be set by the musicbrainz4 backend, but since it's easy to make it optional, it doesn't hurt to expose it to the library users.
2012-01-13mb4: adjust memory handling for libmb4.0b2Christophe Fergeau1-8/+0
In libmusicbrainz 4.0beta2, memory handling has changed, now the memory for list items no longer need to be freed.
2012-01-13mb4: don't try to handle ReleaseGroup::commentChristophe Fergeau1-5/+0
Support for this has been removed from libmusicbrainz4 beta2
2012-01-13mb4: enable libmusicbrainz4 supportChristophe Fergeau1-0/+6
Now that the libmusicbrainz4 is on par feature-wise with the libmusicbrainz3 code, we can enable it in configure.in. It also adds it to the list of metadata backends known to sound-juicer so that it can be used for metadata retrieval.
2012-01-13mb4: handle URL relationsChristophe Fergeau1-25/+80
Extract the various URLs associated with an album when extracting its metadata from musicbrainz.
2012-01-13mb4: readd "is_spoken_word" supportChristophe Fergeau1-16/+5
It's stored in ReleaseGroup::type so we can now detect if an album is some kind of audiobook when using libmusicbrainz4
2012-01-13mb4: add sj_mb4_album_details_dump for debugChristophe Fergeau1-0/+28
2012-01-13mb4: remove use of GET_IDChristophe Fergeau1-23/+3
In libmusicbrainz4, there are regular accessors for the ID every time there is one available, so we can just use GET to get the various IDs we need.
2012-01-13mb4: use libdiscid for discid extractionChristophe Fergeau1-21/+15
libmusicbrainz4 no longer provides an API to get the discid of a physical CD, libdiscid has to be used for that.
2012-01-13mb4: add CD info retrieval using libmusicbrainz4Christophe Fergeau1-125/+348
This code should be able to retrieve at least as much information from musicbrainz as the libmusicbrainz3 code, with the added advantage that multi-disc CDs are working as expected. However, extraction of the discid of a physical CD is no longer done by libmusicbrainz4 and will have to be done using libdiscid
2012-01-13mb4: s/musicbrainz3/musicbrainz4Christophe Fergeau2-42/+42
2012-01-13mb4: add musicbrainz4 to build systemChristophe Fergeau3-2/+527
The 2 added sj-metadata-musicbrainz4.[ch] source files are copies of the musicbrainz3 code which will be used as a base for libmusicbrainz4 support. It's disabled for now so that building of non-compilable code isn't attempted.
2011-11-14extractor: write album artist tagsRoss Burton1-0/+12
2011-10-31sj-metadata_getter: don't leak metadata objectChristophe Fergeau1-1/+1
We create a SjMetadata object in lookup_cd, and when we decide to emit a signal, we don't unref it, so we don't need to add an additional reference to it, otherwise we'll be leaking the object.
2011-10-31sj_metadata_helper_check_media: error out when polling is in progressChristophe Fergeau2-1/+11
2011-10-11Add git.mk for automatic ignoresRoss Burton1-0/+2
2011-10-10Replace GnomeMediaProfile with GstEncodingProfileChristophe Fergeau5-60/+449
2011-10-10Handle GST_STATE_CHANGE_ASYNC in sj-play.c better (#567011)Matthew Martin1-3/+3
Signed-off-by: Ross Burton <ross@linux.intel.com>
2011-10-10Fix device names on Solaris (#540857)Brian Cameron2-1/+5
Solaris is unique that it separates /dev/dsk and /dev/rdsk where /dev/dsk is the logical name for the drive and /dev/rdsk is the raw device name. You need to use the raw device name to acutally access the device. For example, you can refer here for more information: http://docs.sun.com/app/docs/doc/801-7038/6i1cfovsu?a=view Note that the sound-juicer code already has some code to manage this in the function sj_metadata_getter_set_cdrom() in libjuicer/sj-metadata-getter.c. The attached patch adds 3 more places in the code where "/dev/rdsk" is needed for sound-juicer to work well on Solaris. It also fixes the one place in libjuicer/sj-metadata-getter.c which already references "/dev/rdsk" so the #ifdef matches the others. THere is no need to also check for "__SVR4". Signed-off-by: Ross Burton <ross@linux.intel.com>
2011-09-10build: Remove C++ filesBastien Nocera2-22/+0
It's been a while we've needed those in sound-juicer actually (since we moved to using HAL for disc detection, a few year ago...)
2011-02-05libjuicer: Remove unused variableBastien Nocera1-2/+1
2010-11-15Update for new GTK+ 3.x and libgnome-media-profilesBastien Nocera2-2/+2
2010-05-14Remove support for obsolete libmusicbrainz2Bastien Nocera3-681/+0