Mercurial > audlegacy-plugins
comparison src/cdaudio-ng/cdaudio-ng.c @ 1341:4ca99d2be90e
Titles are now built using tuples, with the preferred format
author | Calin Crisan ccrisan@gmail.com |
---|---|
date | Tue, 24 Jul 2007 00:48:58 +0300 |
parents | 7bb2692b3be9 |
children | ab387ad5b88e |
comparison
equal
deleted
inserted
replaced
1340:7bb2692b3be9 | 1341:4ca99d2be90e |
---|---|
64 static gint cdaudio_set_volume(gint l, gint r); | 64 static gint cdaudio_set_volume(gint l, gint r); |
65 static void cdaudio_cleanup(); | 65 static void cdaudio_cleanup(); |
66 static void cdaudio_get_song_info(gchar *filename, gchar **title, gint *length); | 66 static void cdaudio_get_song_info(gchar *filename, gchar **title, gint *length); |
67 static TitleInput *cdaudio_get_song_tuple(gchar *filename); | 67 static TitleInput *cdaudio_get_song_tuple(gchar *filename); |
68 | 68 |
69 static TitleInput *create_tuple_from_trackinfo(char *filename); | |
69 static void *dae_playing_thread_core(dae_params_t *pdae_params); | 70 static void *dae_playing_thread_core(dae_params_t *pdae_params); |
70 static int calculate_track_length(int startlsn, int endlsn); | 71 static int calculate_track_length(int startlsn, int endlsn); |
71 static int find_trackno_from_filename(char *filename); | 72 static int find_trackno_from_filename(char *filename); |
72 static void cleanup_on_error(); | 73 static void cleanup_on_error(); |
73 | 74 |
497 cleanup_on_error(); | 498 cleanup_on_error(); |
498 return; | 499 return; |
499 } | 500 } |
500 } | 501 } |
501 | 502 |
502 char title[DEF_STRING_LEN]; | 503 char *title = xmms_get_titlestring(xmms_get_gentitle_format(), create_tuple_from_trackinfo(pinputplayback->filename)); |
503 | |
504 if (strlen(trackinfo[trackno].performer) > 0) { | |
505 strcpy(title, trackinfo[trackno].performer); | |
506 strcat(title, " - "); | |
507 } | |
508 else | |
509 strcpy(title, ""); | |
510 strcat(title, trackinfo[trackno].name); | |
511 | 504 |
512 inputplugin.set_info(title, calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn), 128000, 44100, 2); | 505 inputplugin.set_info(title, calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn), 128000, 44100, 2); |
506 free(title); | |
513 } | 507 } |
514 | 508 |
515 void cdaudio_stop(InputPlayback *pinputplayback) | 509 void cdaudio_stop(InputPlayback *pinputplayback) |
516 { | 510 { |
517 if (debug) | 511 if (debug) |
707 { | 701 { |
708 if (debug) | 702 if (debug) |
709 printf("cdaudio-ng: cdaudio_get_song_info(\"%s\")\n", filename); | 703 printf("cdaudio-ng: cdaudio_get_song_info(\"%s\")\n", filename); |
710 | 704 |
711 int trackno = find_trackno_from_filename(filename); | 705 int trackno = find_trackno_from_filename(filename); |
712 char *thetitle = (char *) malloc(DEF_STRING_LEN); | 706 |
713 | 707 *title = xmms_get_titlestring(xmms_get_gentitle_format(), create_tuple_from_trackinfo(filename)); |
714 if (strlen(trackinfo[trackno].performer) > 0) { | |
715 strcpy(thetitle, trackinfo[trackno].performer); | |
716 strcat(thetitle, " - "); | |
717 } | |
718 else | |
719 strcpy(thetitle, ""); | |
720 strcat(thetitle, trackinfo[trackno].name); | |
721 | |
722 *title = thetitle; | |
723 *length = calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn); | 708 *length = calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn); |
724 } | 709 } |
725 | 710 |
726 TitleInput *cdaudio_get_song_tuple(gchar *filename) | 711 TitleInput *cdaudio_get_song_tuple(gchar *filename) |
727 { | 712 { |
728 if (debug) | 713 if (debug) |
729 printf("cdaudio-ng: cdaudio_get_song_tuple(\"%s\")\n", filename); | 714 printf("cdaudio-ng: cdaudio_get_song_tuple(\"%s\")\n", filename); |
730 | 715 |
716 return create_tuple_from_trackinfo(filename); | |
717 } | |
718 | |
719 | |
720 /* auxiliar functions */ | |
721 | |
722 TitleInput *create_tuple_from_trackinfo(char *filename) | |
723 { | |
731 TitleInput *tuple = bmp_title_input_new(); | 724 TitleInput *tuple = bmp_title_input_new(); |
732 | |
733 /* return information about the requested track */ | |
734 int trackno = find_trackno_from_filename(filename); | 725 int trackno = find_trackno_from_filename(filename); |
726 | |
735 if (trackno < firsttrackno || trackno > lasttrackno) | 727 if (trackno < firsttrackno || trackno > lasttrackno) |
736 return NULL; | 728 return NULL; |
737 | 729 |
738 tuple->performer = strlen(trackinfo[trackno].performer) > 0 ? g_strdup(trackinfo[trackno].performer) : NULL; | 730 tuple->performer = strlen(trackinfo[trackno].performer) > 0 ? g_strdup(trackinfo[trackno].performer) : NULL; |
739 tuple->album_name = strlen(trackinfo[0].name) > 0 ? g_strdup(trackinfo[0].name) : NULL; | 731 tuple->album_name = strlen(trackinfo[0].name) > 0 ? g_strdup(trackinfo[0].name) : NULL; |
746 tuple->genre = strlen(trackinfo[trackno].genre) > 0 ? g_strdup(trackinfo[trackno].genre) : NULL; | 738 tuple->genre = strlen(trackinfo[trackno].genre) > 0 ? g_strdup(trackinfo[trackno].genre) : NULL; |
747 //tuple->year = 0; todo: set the year | 739 //tuple->year = 0; todo: set the year |
748 | 740 |
749 return tuple; | 741 return tuple; |
750 } | 742 } |
751 | |
752 | |
753 /* auxiliar functions */ | |
754 | 743 |
755 void *dae_playing_thread_core(dae_params_t *pdae_params) | 744 void *dae_playing_thread_core(dae_params_t *pdae_params) |
756 { | 745 { |
757 unsigned char *buffer = (unsigned char *) malloc(CDDA_DAE_FRAMES * CDIO_CD_FRAMESIZE_RAW); | 746 unsigned char *buffer = (unsigned char *) malloc(CDDA_DAE_FRAMES * CDIO_CD_FRAMESIZE_RAW); |
758 | 747 |