summaryrefslogtreecommitdiff
path: root/community/cmus/cdio-git.patch
blob: 8c549bee765a5b53085aab4d9dd2a762c69404e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
*** cdio.c	2012-11-07 08:46:17.000000000 +0000
--- cmus-git/src/cmus/cdio.c	2013-09-30 02:21:10.518785946 +0000
***************
*** 1,5 ****
  /*
!  * Copyright 2011 Various Authors
   * Copyright 2011 Johannes Weißl
   *
   * Based on cdda.c from XMMS2.
--- 1,5 ----
  /*
!  * Copyright 2011-2013 Various Authors
   * Copyright 2011 Johannes Weißl
   *
   * Based on cdda.c from XMMS2.
***************
*** 27,35 ****
  #include "comment.h"
  #include "discid.h"
  
- #include <cdio/cdda.h>
  #include <cdio/cdio.h>
  #include <cdio/logging.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
--- 27,40 ----
  #include "comment.h"
  #include "discid.h"
  
  #include <cdio/cdio.h>
  #include <cdio/logging.h>
+ #if LIBCDIO_VERSION_NUM >= 90
+ #include <cdio/paranoia/cdda.h>
+ #else
+ #include <cdio/cdda.h>
+ #endif
+ 
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
***************
*** 352,375 ****
  	GROWING_KEYVALS(c);
  	const char *artist = NULL, *albumartist = NULL, *album = NULL,
  		*title = NULL, *genre = NULL, *comment = NULL;
! 	const cdtext_t *cdtext_track, *cdtext_album;
  #ifdef HAVE_CDDB
  	cddb_conn_t *cddb_conn = NULL;
  	cddb_disc_t *cddb_disc = NULL;
  #endif
  	char buf[64];
  
! 	cdtext_track = cdio_get_cdtext(priv->cdio, priv->track);
! 	if (cdtext_track) {
! 		char * const *field = cdtext_track->field;
  		artist = field[CDTEXT_PERFORMER];
  		title = field[CDTEXT_TITLE];
  		genre = field[CDTEXT_GENRE];
  		comment = field[CDTEXT_MESSAGE];
  	}
! 	cdtext_album = cdio_get_cdtext(priv->cdio, 0);
! 	if (cdtext_album) {
! 		char * const *field = cdtext_album->field;
  		album = field[CDTEXT_TITLE];
  		albumartist = field[CDTEXT_PERFORMER];
  		if (!artist)
--- 357,403 ----
  	GROWING_KEYVALS(c);
  	const char *artist = NULL, *albumartist = NULL, *album = NULL,
  		*title = NULL, *genre = NULL, *comment = NULL;
! 	int track_comments_found = 0;
! 	const cdtext_t *cdt;
  #ifdef HAVE_CDDB
  	cddb_conn_t *cddb_conn = NULL;
  	cddb_disc_t *cddb_disc = NULL;
  #endif
  	char buf[64];
  
! #if LIBCDIO_VERSION_NUM >= 90
! 	cdt = cdio_get_cdtext(priv->cdio);
! 	if (cdt) {
! 		artist = cdtext_get(cdt, CDTEXT_FIELD_PERFORMER, priv->track);
! 		title = cdtext_get(cdt, CDTEXT_FIELD_TITLE, priv->track);
! 		genre = cdtext_get(cdt, CDTEXT_FIELD_GENRE, priv->track);
! 		comment = cdtext_get(cdt, CDTEXT_FIELD_MESSAGE, priv->track);
! 
! 		if (title)
! 			track_comments_found = 1;
! 
! 		album = cdtext_get(cdt, CDTEXT_FIELD_TITLE, 0);
! 		albumartist = cdtext_get(cdt, CDTEXT_FIELD_PERFORMER, 0);
! 		if (!artist)
! 			artist = albumartist;
! 		if (!genre)
! 			genre = cdtext_get(cdt, CDTEXT_FIELD_GENRE, 0);
! 		if (!comment)
! 			comment = cdtext_get(cdt, CDTEXT_FIELD_MESSAGE, 0);
! 	}
! #else
! 	cdt = cdio_get_cdtext(priv->cdio, priv->track);
! 	if (cdt) {
! 		track_comments_found = 1;
! 		char * const *field = cdt->field;
  		artist = field[CDTEXT_PERFORMER];
  		title = field[CDTEXT_TITLE];
  		genre = field[CDTEXT_GENRE];
  		comment = field[CDTEXT_MESSAGE];
  	}
! 	cdt = cdio_get_cdtext(priv->cdio, 0);
! 	if (cdt) {
! 		char * const *field = cdt->field;
  		album = field[CDTEXT_TITLE];
  		albumartist = field[CDTEXT_PERFORMER];
  		if (!artist)
***************
*** 379,387 ****
  		if (!comment)
  			comment = field[CDTEXT_MESSAGE];
  	}
  
  #ifdef HAVE_CDDB
! 	if (!cdtext_track && cddb_url && cddb_url[0]) {
  		cddb_track_t *cddb_track;
  		track_t i_tracks = cdio_get_num_tracks(priv->cdio);
  		track_t i_first_track = cdio_get_first_track_num(priv->cdio);
--- 407,416 ----
  		if (!comment)
  			comment = field[CDTEXT_MESSAGE];
  	}
+ #endif
  
  #ifdef HAVE_CDDB
! 	if (!track_comments_found && cddb_url && cddb_url[0]) {
  		cddb_track_t *cddb_track;
  		track_t i_tracks = cdio_get_num_tracks(priv->cdio);
  		track_t i_first_track = cdio_get_first_track_num(priv->cdio);