26 |
26 |
#include <cdio/cdio.h>
|
27 |
27 |
#include <cdio/cdtext.h>
|
28 |
28 |
#include <cdio/track.h>
|
29 |
|
#include <cdio/cdda.h>
|
30 |
29 |
#include <cdio/audio.h>
|
31 |
30 |
#include <cdio/sector.h>
|
32 |
31 |
#include <cdio/cd_types.h>
|
33 |
32 |
|
|
33 |
#if LIBCDIO_VERSION_NUM >= 90
|
|
34 |
#include <cdio/paranoia/cdda.h>
|
|
35 |
#else
|
|
36 |
#include <cdio/cdda.h>
|
|
37 |
#endif
|
|
38 |
|
34 |
39 |
/* libcdio's header files #define these */
|
35 |
40 |
#undef PACKAGE
|
36 |
41 |
#undef PACKAGE_BUGREPORT
|
... | ... | |
269 |
274 |
const char * performer, const char * name,
|
270 |
275 |
const char * genre)
|
271 |
276 |
{
|
272 |
|
g_strlcpy (t->performer, performer, DEF_STRING_LEN);
|
273 |
|
g_strlcpy (t->name, name, DEF_STRING_LEN);
|
274 |
|
g_strlcpy (t->genre, genre, DEF_STRING_LEN);
|
|
277 |
g_strlcpy (t->performer, performer ? performer : "", DEF_STRING_LEN);
|
|
278 |
g_strlcpy (t->name, name ? name : "", DEF_STRING_LEN);
|
|
279 |
g_strlcpy (t->genre, genre ? genre : "", DEF_STRING_LEN);
|
275 |
280 |
}
|
276 |
281 |
|
277 |
282 |
/* thread safe (mutex may be locked) */
|
... | ... | |
622 |
627 |
}
|
623 |
628 |
|
624 |
629 |
/* get trackinfo[0] cdtext information (the disc) */
|
|
630 |
cdtext_t *pcdtext = NULL;
|
625 |
631 |
if (aud_get_bool ("CDDA", "use_cdtext"))
|
626 |
632 |
{
|
627 |
633 |
AUDDBG ("getting cd-text information for disc\n");
|
628 |
|
cdtext_t *pcdtext = cdio_get_cdtext (pcdrom_drive->p_cdio, 0);
|
|
634 |
#if LIBCDIO_VERSION_NUM >= 90
|
|
635 |
pcdtext = cdio_get_cdtext (pcdrom_drive->p_cdio);
|
|
636 |
if (pcdtext == NULL)
|
|
637 |
#else
|
|
638 |
pcdtext = cdio_get_cdtext (pcdrom_drive->p_cdio, 0);
|
629 |
639 |
if (pcdtext == NULL || pcdtext->field[CDTEXT_TITLE] == NULL)
|
|
640 |
#endif
|
630 |
641 |
{
|
631 |
642 |
AUDDBG ("no cd-text available for disc\n");
|
632 |
643 |
}
|
633 |
644 |
else
|
634 |
645 |
{
|
635 |
646 |
cdaudio_set_strinfo (&trackinfo[0],
|
636 |
|
pcdtext->field[CDTEXT_PERFORMER] ? pcdtext->
|
637 |
|
field[CDTEXT_PERFORMER] : "",
|
638 |
|
pcdtext->field[CDTEXT_TITLE] ? pcdtext->
|
639 |
|
field[CDTEXT_TITLE] : "",
|
640 |
|
pcdtext->field[CDTEXT_GENRE] ? pcdtext->
|
641 |
|
field[CDTEXT_GENRE] : "");
|
|
647 |
#if LIBCDIO_VERSION_NUM >= 90
|
|
648 |
cdtext_get(pcdtext, CDTEXT_FIELD_PERFORMER, 0),
|
|
649 |
cdtext_get(pcdtext, CDTEXT_FIELD_TITLE, 0),
|
|
650 |
cdtext_get(pcdtext, CDTEXT_FIELD_GENRE, 0));
|
|
651 |
#else
|
|
652 |
pcdtext->field[CDTEXT_PERFORMER],
|
|
653 |
pcdtext->field[CDTEXT_TITLE],
|
|
654 |
pcdtext->field[CDTEXT_GENRE]);
|
|
655 |
#endif
|
642 |
656 |
}
|
643 |
657 |
}
|
644 |
658 |
|
... | ... | |
646 |
660 |
bool_t cdtext_was_available = FALSE;
|
647 |
661 |
for (trackno = firsttrackno; trackno <= lasttrackno; trackno++)
|
648 |
662 |
{
|
649 |
|
cdtext_t *pcdtext = NULL;
|
|
663 |
#if LIBCDIO_VERSION_NUM < 90
|
650 |
664 |
if (aud_get_bool ("CDDA", "use_cdtext"))
|
651 |
665 |
{
|
652 |
666 |
AUDDBG ("getting cd-text information for track %d\n", trackno);
|
... | ... | |
657 |
671 |
pcdtext = NULL;
|
658 |
672 |
}
|
659 |
673 |
}
|
|
674 |
#endif
|
660 |
675 |
|
661 |
676 |
if (pcdtext != NULL)
|
662 |
677 |
{
|
663 |
678 |
cdaudio_set_strinfo (&trackinfo[trackno],
|
664 |
|
pcdtext->field[CDTEXT_PERFORMER] ? pcdtext->
|
665 |
|
field[CDTEXT_PERFORMER] : "",
|
666 |
|
pcdtext->field[CDTEXT_TITLE] ? pcdtext->
|
667 |
|
field[CDTEXT_TITLE] : "",
|
668 |
|
pcdtext->field[CDTEXT_GENRE] ? pcdtext->
|
669 |
|
field[CDTEXT_GENRE] : "");
|
|
679 |
#if LIBCDIO_VERSION_NUM >= 90
|
|
680 |
cdtext_get(pcdtext, CDTEXT_FIELD_PERFORMER, trackno),
|
|
681 |
cdtext_get(pcdtext, CDTEXT_FIELD_TITLE, trackno),
|
|
682 |
cdtext_get(pcdtext, CDTEXT_FIELD_GENRE, trackno));
|
|
683 |
#else
|
|
684 |
pcdtext->field[CDTEXT_PERFORMER],
|
|
685 |
pcdtext->field[CDTEXT_TITLE],
|
|
686 |
pcdtext->field[CDTEXT_GENRE]);
|
|
687 |
#endif
|
670 |
688 |
cdtext_was_available = TRUE;
|
671 |
689 |
}
|
672 |
690 |
else
|