diff options
author | R. Bernstein <rocky@gnu.org> | 2011-05-27 17:50:56 -0400 |
---|---|---|
committer | R. Bernstein <rocky@gnu.org> | 2011-05-27 17:50:56 -0400 |
commit | 9be098033721e4c477197fa206a4c12412311a95 (patch) | |
tree | 54a7726eec238a23599322841955fbe0c4b4e53a /src | |
parent | 958c3cad4d94982b7369e93e19c08e8fb269d31c (diff) |
Change a number of sprintf's to snprintf.
Diffstat (limited to 'src')
-rw-r--r-- | src/cdda-player.c | 1049 |
1 files changed, 525 insertions, 524 deletions
diff --git a/src/cdda-player.c b/src/cdda-player.c index 4df91315..e944377f 100644 --- a/src/cdda-player.c +++ b/src/cdda-player.c @@ -1,6 +1,4 @@ /* - $Id: cdda-player.c,v 1.50 2008/06/19 15:44:14 flameeyes Exp $ - Copyright (C) 2005, 2006, 2008, 2009, 2010, 2011 Rocky Bernstein <rocky@gnu.org> @@ -74,7 +72,7 @@ static void action(const char *psz_action); static void display_cdinfo(CdIo_t *p_cdio, track_t i_tracks, - track_t i_first_track); + track_t i_first_track); static void display_tracks(void); static void get_cddb_track_info(track_t i_track); static void get_cdtext_track_info(track_t i_track); @@ -99,10 +97,10 @@ static int start_track = 0; static int stop_track = 0; static int one_track = 0; static int i_vol_port = 5; /* If 5, retrieve volume port. - Otherwise the port number 0..3 - of a working volume port and - 4 for no working port. - */ + Otherwise the port number 0..3 + of a working volume port and + 4 for no working port. + */ /* settings which can be set from the command or interactively. */ static bool b_cd = false; @@ -116,7 +114,7 @@ static bool b_cddb = false; /* CDDB database present */ #endif static bool b_db = false; /* we have a database at all */ static bool b_record = false; /* we have a record for -static the inserted CD */ +static the inserted CD */ static bool b_all_tracks = false; /* True if we display all tracks*/ static int8_t i_volume_level = -1; /* Valid range is 0..100 */ @@ -284,7 +282,7 @@ action(const char *psz_action) psz_action = psz_action_line; else if (psz_action && strlen(psz_action)) snprintf(psz_action_line, sizeof(psz_action_line), "action : %s", - psz_action); + psz_action); else snprintf(psz_action_line, sizeof(psz_action_line), "%s", "" ); mvprintw(LINE_ACTION, 0, psz_action_line); @@ -308,7 +306,7 @@ xperror(const char *psz_msg) } if (b_verbose) { - sprintf(line,"%s: %s", psz_msg, strerror(errno)); + snprintf(line, sizeof(line), "%s: %s", psz_msg, strerror(errno)); attron(A_STANDOUT); mvprintw(LINE_ACTION, 0, (char *) "error : %s", line); attroff(A_STANDOUT); @@ -525,7 +523,7 @@ get_cddb_disc_info(CdIo_t *p_cdio) { #ifdef HAVE_CDDB b_db = init_cddb(p_cdio, &p_conn, &p_cddb_disc, xperror, i_first_track, - i_tracks, &i_cddb_matches); + i_tracks, &i_cddb_matches); if (b_db) { int i_year; i_year = atoi(year); @@ -541,7 +539,7 @@ get_cddb_disc_info(CdIo_t *p_cdio) #define add_cdtext_disc_info(format_str, info_field, FIELD) \ if (p_cdtext->field[FIELD] && !strlen(info_field)) { \ snprintf(info_field, sizeof(info_field), format_str, \ - p_cdtext->field[FIELD]); \ + p_cdtext->field[FIELD]); \ b_cdtext_ ## info_field = true; \ } @@ -608,30 +606,30 @@ read_toc(CdIo_t *p_cdio) int s; if ( !cdio_get_track_msf(p_cdio, i, &(toc[i])) ) { - xperror("read toc entry"); - b_cd = false; - return; + xperror("read toc entry"); + b_cd = false; + return; } if ( TRACK_FORMAT_AUDIO == cdio_get_track_format(p_cdio, i) ) { - - if (i != i_first_track) - { - s = cdio_audio_get_msf_seconds(&toc[i]) - - cdio_audio_get_msf_seconds(&toc[i-1]); - snprintf(cd_info[i-1].length, sizeof(cd_info[0].length), - "%02d:%02d", - s / CDIO_CD_SECS_PER_MIN, s % CDIO_CD_SECS_PER_MIN); - } + + if (i != i_first_track) + { + s = cdio_audio_get_msf_seconds(&toc[i]) + - cdio_audio_get_msf_seconds(&toc[i-1]); + snprintf(cd_info[i-1].length, sizeof(cd_info[0].length), + "%02d:%02d", + s / CDIO_CD_SECS_PER_MIN, s % CDIO_CD_SECS_PER_MIN); + } } else { - if ((i != i_last_track+1) ) { - i_data++; - if (i == i_first_track) { - if (i == i_last_track) - i_first_audio_track = CDIO_CDROM_LEADOUT_TRACK; - else - i_first_audio_track++; - } - } + if ((i != i_last_track+1) ) { + i_data++; + if (i == i_first_track) { + if (i == i_last_track) + i_first_audio_track = CDIO_CDROM_LEADOUT_TRACK; + else + i_first_audio_track++; + } + } } get_track_info(i); } @@ -671,11 +669,12 @@ play_track(track_t i_start_track, track_t i_end_track) fprintf(stderr,"%d-%d\n",i_start_track, i_end_track-1); cd_pause(p_cdio); - sprintf(line,"play track %d to track %d.", i_start_track, i_end_track-1); + snprintf(line, sizeof(line), "play track %d to track %d.", + i_start_track, i_end_track-1); action(line); b_ok = (DRIVER_OP_SUCCESS == cdio_audio_play_msf(p_cdio, - &(toc[i_start_track]), - &(toc[i_end_track])) ); + &(toc[i_start_track]), + &(toc[i_end_track])) ); if (!b_ok) xperror("play"); return b_ok; } @@ -700,7 +699,7 @@ skip(int diff) cd_pause(p_cdio); if ( DRIVER_OP_SUCCESS != cdio_audio_play_msf(p_cdio, &start_msf, - &(toc[i_last_audio_track])) ) + &(toc[i_last_audio_track])) ) xperror("play"); } @@ -733,42 +732,43 @@ display_status(bool b_status_only) if (!b_interactive) return; if (!b_cd) { - sprintf(line,"no CD in drive (%s)", psz_device); + snprintf(line, sizeof(line), "no CD in drive (%s)", psz_device); } else if (i_first_track == CDIO_CDROM_LEADOUT_TRACK) { - sprintf(line,"CD has only data tracks"); + snprintf(line, sizeof(line), "CD has only data tracks"); } else if (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || - sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) { + sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) { cdio_audio_get_volume(p_cdio, &audio_volume); if (i_vol_port < 4) { - i_volume_level = rounded_div(audio_volume.level[i_vol_port]*100, 256); - sprintf(line, - "track %2d - %02x:%02x of %s (%02x:%02x abs) %s volume: %d", - sub.track, sub.rel_addr.m, sub.rel_addr.s, - cd_info[sub.track].length, - sub.abs_addr.m, sub.abs_addr.s, - mmc_audio_state2str(sub.audio_status), - i_volume_level); + i_volume_level = rounded_div(audio_volume.level[i_vol_port]*100, 256); + snprintf(line, sizeof(line), + "track %2d - %02x:%02x of %s (%02x:%02x abs) %s volume: %d", + sub.track, sub.rel_addr.m, sub.rel_addr.s, + cd_info[sub.track].length, + sub.abs_addr.m, sub.abs_addr.s, + mmc_audio_state2str(sub.audio_status), + i_volume_level); } else - sprintf(line,"track %2d - %02x:%02x of %s (%02x:%02x abs) %s", - sub.track, sub.rel_addr.m, sub.rel_addr.s, - cd_info[sub.track].length, sub.abs_addr.m, sub.abs_addr.s, - mmc_audio_state2str(sub.audio_status)); + snprintf(line, sizeof(line), + "track %2d - %02x:%02x of %s (%02x:%02x abs) %s", + sub.track, sub.rel_addr.m, sub.rel_addr.s, + cd_info[sub.track].length, sub.abs_addr.m, sub.abs_addr.s, + mmc_audio_state2str(sub.audio_status)); } else { - sprintf(line,"%s", mmc_audio_state2str(sub.audio_status)); + snprintf(line, sizeof(line), "%s", mmc_audio_state2str(sub.audio_status)); } action(NULL); mvprintw(LINE_STATUS, 0, (char *) "status%s: %s", - auto_mode ? "*" : " ", line); + auto_mode ? "*" : " ", line); clrtoeol(); if ( !b_status_only && b_db && i_last_display_track != sub.track && (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || - sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) && - b_cd) { + sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) && + b_cd) { if (b_all_tracks) display_tracks(); @@ -776,38 +776,38 @@ display_status(bool b_status_only) const cd_track_info_rec_t *p_cd_info = &cd_info[sub.track]; i_last_display_track = sub.track; if (i_first_audio_track != sub.track && - strlen(cd_info[sub.track-1].title)) { - const cd_track_info_rec_t *p_cd_info = &cd_info[sub.track-1]; - mvprintw(LINE_TRACK_PREV, 0, (char *) " track %2d title : %s [%s]", - sub.track-1, p_cd_info->title, - p_cd_info->b_cdtext ? "CD-Text" : "CDDB"); - clrtoeol(); + strlen(cd_info[sub.track-1].title)) { + const cd_track_info_rec_t *p_cd_info = &cd_info[sub.track-1]; + mvprintw(LINE_TRACK_PREV, 0, (char *) " track %2d title : %s [%s]", + sub.track-1, p_cd_info->title, + p_cd_info->b_cdtext ? "CD-Text" : "CDDB"); + clrtoeol(); } else { - mvprintw(LINE_TRACK_PREV, 0, (char *) "%s",""); - clrtoeol(); + mvprintw(LINE_TRACK_PREV, 0, (char *) "%s",""); + clrtoeol(); } if (strlen(p_cd_info->title)) { - mvprintw(LINE_TRACK_TITLE, 0, (char *) ">track %2d title : %s [%s]", - sub.track, p_cd_info->title, - (char *) (p_cd_info->b_cdtext ? "CD-Text" : "CDDB")); - clrtoeol(); + mvprintw(LINE_TRACK_TITLE, 0, (char *) ">track %2d title : %s [%s]", + sub.track, p_cd_info->title, + (char *) (p_cd_info->b_cdtext ? "CD-Text" : "CDDB")); + clrtoeol(); } if (strlen(p_cd_info->artist)) { - mvprintw(LINE_TRACK_ARTIST, 0, (char *) ">track %2d artist: %s [%s]", - sub.track, p_cd_info->artist, - p_cd_info->b_cdtext ? "CD-Text" : "CDDB"); - clrtoeol(); + mvprintw(LINE_TRACK_ARTIST, 0, (char *) ">track %2d artist: %s [%s]", + sub.track, p_cd_info->artist, + p_cd_info->b_cdtext ? "CD-Text" : "CDDB"); + clrtoeol(); } if (i_last_audio_track != sub.track && - strlen(cd_info[sub.track+1].title)) { - const cd_track_info_rec_t *p_cd_info = &cd_info[sub.track+1]; - mvprintw(LINE_TRACK_NEXT, 0, (char *) " track %2d title : %s [%s]", - sub.track+1, p_cd_info->title, - p_cd_info->b_cdtext ? "CD-Text" : "CDDB"); - clrtoeol(); + strlen(cd_info[sub.track+1].title)) { + const cd_track_info_rec_t *p_cd_info = &cd_info[sub.track+1]; + mvprintw(LINE_TRACK_NEXT, 0, (char *) " track %2d title : %s [%s]", + sub.track+1, p_cd_info->title, + p_cd_info->b_cdtext ? "CD-Text" : "CDDB"); + clrtoeol(); } else { - mvprintw(LINE_TRACK_NEXT, 0, (char *) "%s",""); - clrtoeol(); + mvprintw(LINE_TRACK_NEXT, 0, (char *) "%s",""); + clrtoeol(); } clrtobot(); } @@ -822,7 +822,7 @@ get_cddb_track_info(track_t i_track) { #ifdef HAVE_CDDB cddb_track_t *t = cddb_disc_get_track(p_cddb_disc, - i_track - i_first_track); + i_track - i_first_track); if (t) { cddb_track_set_title(t, title); cddb_track_set_artist(t, artist); @@ -836,8 +836,8 @@ get_cddb_track_info(track_t i_track) #define add_cdtext_track_info(format_str, info_field, FIELD) \ if (p_cdtext->field[FIELD]) { \ snprintf(cd_info[i_track].info_field, \ - sizeof(cd_info[i_track].info_field), \ - format_str, p_cdtext->field[FIELD]); \ + sizeof(cd_info[i_track].info_field), \ + format_str, p_cdtext->field[FIELD]); \ cd_info[i_track].b_cdtext = true; \ } @@ -871,8 +871,8 @@ get_track_info(track_t i_track) #define display_line(LINE_NO, COL_NO, format_str, field) \ if (field != NULL && field[0]) { \ mvprintw(LINE_NO, COL_NO, (char *) format_str " [%s]", \ - field, \ - b_cdtext_ ## field ? "CD-Text": "CDDB"); \ + field, \ + b_cdtext_ ## field ? "CD-Text": "CDDB"); \ clrtoeol(); \ } @@ -884,14 +884,15 @@ display_cdinfo(CdIo_t *p_cdio, track_t i_tracks, track_t i_first_track) if (!b_interactive) return; - if (!b_cd) sprintf(line, "-"); + if (!b_cd) snprintf(line, sizeof(line), "-"); else { - len = sprintf(line, "%2u tracks (%02x:%02x min)", - (unsigned int) i_last_track, - toc[i_last_track+1].m, toc[i_last_track+1].s); + len = snprintf(line, sizeof(line), "%2u tracks (%02x:%02x min)", + (unsigned int) i_last_track, + toc[i_last_track+1].m, toc[i_last_track+1].s); if (i_data && i_first_track != CDIO_CDROM_LEADOUT_TRACK) - sprintf(line+len,", audio=%u-%u", (unsigned int) i_first_audio_track, - (unsigned int) i_last_audio_track); + snprintf(line+len, sizeof(line)-len, ", audio=%u-%u", + (unsigned int) i_first_audio_track, + (unsigned int) i_last_audio_track); display_line(LINE_ARTIST, 0, "CD Artist : %s", artist); display_line(LINE_CDNAME, 0, "CD Title : %s", title); @@ -910,41 +911,41 @@ static void usage(char *prog) { fprintf(stderr, - "%s is a simple curses CD player. It can pick up artist,\n" - "CD name and song title from CD-Text info on the CD or\n" - "via CDDB.\n" - "\n" - "usage: %s [options] [device]\n" + "%s is a simple curses CD player. It can pick up artist,\n" + "CD name and song title from CD-Text info on the CD or\n" + "via CDDB.\n" + "\n" + "usage: %s [options] [device]\n" + "\n" + "default for to search for a CD-ROM device with a CD-DA loaded\n" "\n" - "default for to search for a CD-ROM device with a CD-DA loaded\n" - "\n" - "These command line options available:\n" - " -h print this help\n" - " -k print key mapping\n" - " -a start up in auto-mode\n" - " -v verbose\n" - "\n" - "for non-interactive use (only one) of these:\n" - " -l list tracks\n" - " -c print cover (PostScript to stdout)\n" - " -C close CD-ROM tray. If you use this option,\n" - " a CD-ROM device name must be specified.\n" - " -p play the whole CD\n" - " -t n play track >n<\n" - " -t a-b play all tracks between a and b (inclusive)\n" - " -L set volume level\n" - " -s stop playing\n" - " -S list audio subchannel information\n" - " -e eject cdrom\n" + "These command line options available:\n" + " -h print this help\n" + " -k print key mapping\n" + " -a start up in auto-mode\n" + " -v verbose\n" "\n" - "That's all. Oh, maybe a few words more about the auto-mode. This\n" - "is the 'dont-touch-any-key' feature. You load a CD, player starts\n" - "to play it, and when it is done it ejects the CD. Start it that\n" - "way on a spare console and forget about it...\n" - "\n" - "(c) 1997,98 Gerd Knorr <kraxel@goldbach.in-berlin.de>\n" - "(c) 2005, 2006 Rocky Bernstein <rocky@gnu.org>\n" - , prog, prog); + "for non-interactive use (only one) of these:\n" + " -l list tracks\n" + " -c print cover (PostScript to stdout)\n" + " -C close CD-ROM tray. If you use this option,\n" + " a CD-ROM device name must be specified.\n" + " -p play the whole CD\n" + " -t n play track >n<\n" + " -t a-b play all tracks between a and b (inclusive)\n" + " -L set volume level\n" + " -s stop playing\n" + " -S list audio subchannel information\n" + " -e eject cdrom\n" + "\n" + "That's all. Oh, maybe a few words more about the auto-mode. This\n" + "is the 'dont-touch-any-key' feature. You load a CD, player starts\n" + "to play it, and when it is done it ejects the CD. Start it that\n" + "way on a spare console and forget about it...\n" + "\n" + "(c) 1997,98 Gerd Knorr <kraxel@goldbach.in-berlin.de>\n" + "(c) 2005, 2006 Rocky Bernstein <rocky@gnu.org>\n" + , prog, prog); } static void @@ -995,28 +996,28 @@ display_tracks(void) for (i = i_first_track; i <= i_last_track; i++) { char line[200]=""; s = cdio_audio_get_msf_seconds(&toc[i+1]) - - cdio_audio_get_msf_seconds(&toc[i]); + - cdio_audio_get_msf_seconds(&toc[i]); read_subchannel(p_cdio); - sprintf(line, "%2d %02d:%02d %s ", i, - s / CDIO_CD_SECS_PER_MIN, s % CDIO_CD_SECS_PER_MIN, - ( ( sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY || - sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED ) && - sub.track == i ) ? "->" : " |"); + snprintf(line, sizeof(line), "%2d %02d:%02d %s ", i, + s / CDIO_CD_SECS_PER_MIN, s % CDIO_CD_SECS_PER_MIN, + ( ( sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY || + sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED ) && + sub.track == i ) ? "->" : " |"); if (b_record) { - if ( strlen(cd_info[i].title) ) - strcat(line, cd_info[i].title); - if ( strlen(cd_info[i].artist) > 0 ) { - if (strlen(cd_info[i].title)) - strcat(line, " / "); - strcat(line, cd_info[i].artist); - } + if ( strlen(cd_info[i].title) ) + strcat(line, cd_info[i].title); + if ( strlen(cd_info[i].artist) > 0 ) { + if (strlen(cd_info[i].title)) + strcat(line, " / "); + strcat(line, cd_info[i].artist); + } } if (sub.track == i) { - attron(A_STANDOUT); - mvprintw(i_line++, 0, line); - attroff(A_STANDOUT); - } else - mvprintw(i_line++, 0, line); + attron(A_STANDOUT); + mvprintw(i_line++, 0, line); + attroff(A_STANDOUT); + } else + mvprintw(i_line++, 0, line); clrtoeol(); } } @@ -1027,254 +1028,254 @@ display_tracks(void) * stolen from mpage output -- please don't ask me how this works... */ #define ENCODING_TRICKS \ - "/reencsmalldict 12 dict def\n" \ - "/ReEncodeSmall { reencsmalldict begin\n" \ - "/newcodesandnames exch def /newfontname exch def\n" \ - "/basefontname exch def\n" \ - "/basefontdict basefontname findfont def\n" \ - "/newfont basefontdict maxlength dict def\n" \ - "basefontdict { exch dup /FID ne { dup /Encoding eq\n" \ - "{ exch dup length array copy newfont 3 1 roll put }\n" \ - "{ exch newfont 3 1 roll put }\n" \ - "ifelse }\n" \ - "{ pop pop }\n" \ - "ifelse } forall\n" \ - "newfont /FontName newfontname put\n" \ - "newcodesandnames aload pop newcodesandnames length 2 idiv\n" \ - "{ newfont /Encoding get 3 1 roll put } repeat\n" \ - "newfontname newfont definefont pop end } def\n" \ - "/charvec [\n" \ - "026 /Scaron\n" \ - "027 /Ydieresis\n" \ - "028 /Zcaron\n" \ - "029 /scaron\n" \ - "030 /trademark\n" \ - "031 /zcaron\n" \ - "032 /space\n" \ - "033 /exclam\n" \ - "034 /quotedbl\n" \ - "035 /numbersign\n" \ - "036 /dollar\n" \ - "037 /percent\n" \ - "038 /ampersand\n" \ - "039 /quoteright\n" \ - "040 /parenleft\n" \ - "041 /parenright\n" \ - "042 /asterisk\n" \ - "043 /plus\n" \ - "044 /comma\n" \ - "045 /minus\n" \ - "046 /period\n" \ - "047 /slash\n" \ - "048 /zero\n" \ - "049 /one\n" \ - "050 /two\n" \ - "051 /three\n" \ - "052 /four\n" \ - "053 /five\n" \ - "054 /six\n" \ - "055 /seven\n" \ - "056 /eight\n" \ - "057 /nine\n" \ - "058 /colon\n" \ - "059 /semicolon\n" \ - "060 /less\n" \ - "061 /equal\n" \ - "062 /greater\n" \ - "063 /question\n" \ - "064 /at\n" \ - "065 /A\n" \ - "066 /B\n" \ - "067 /C\n" \ - "068 /D\n" \ - "069 /E\n" \ - "070 /F\n" \ - "071 /G\n" \ - "072 /H\n" \ - "073 /I\n" \ - "074 /J\n" \ - "075 /K\n" \ - "076 /L\n" \ - "077 /M\n" \ - "078 /N\n" \ - "079 /O\n" \ - "080 /P\n" \ - "081 /Q\n" \ - "082 /R\n" \ - "083 /S\n" \ - "084 /T\n" \ - "085 /U\n" \ - "086 /V\n" \ - "087 /W\n" \ - "088 /X\n" \ - "089 /Y\n" \ - "090 /Z\n" \ - "091 /bracketleft\n" \ - "092 /backslash\n" \ - "093 /bracketright\n" \ - "094 /asciicircum\n" \ - "095 /underscore\n" \ - "096 /quoteleft\n" \ - "097 /a\n" \ - "098 /b\n" \ - "099 /c\n" \ - "100 /d\n" \ - "101 /e\n" \ - "102 /f\n" \ - "103 /g\n" \ - "104 /h\n" \ - "105 /i\n" \ - "106 /j\n" \ - "107 /k\n" \ - "108 /l\n" \ - "109 /m\n" \ - "110 /n\n" \ - "111 /o\n" \ - "112 /p\n" \ - "113 /q\n" \ - "114 /r\n" \ - "115 /s\n" \ - "116 /t\n" \ - "117 /u\n" \ - "118 /v\n" \ - "119 /w\n" \ - "120 /x\n" \ - "121 /y\n" \ - "122 /z\n" \ - "123 /braceleft\n" \ - "124 /bar\n" \ - "125 /braceright\n" \ - "126 /asciitilde\n" \ - "127 /.notdef\n" \ - "128 /fraction\n" \ - "129 /florin\n" \ - "130 /quotesingle\n" \ - "131 /quotedblleft\n" \ - "132 /guilsinglleft\n" \ - "133 /guilsinglright\n" \ - "134 /fi\n" \ - "135 /fl\n" \ - "136 /endash\n" \ - "137 /dagger\n" \ - "138 /daggerdbl\n" \ - "139 /bullet\n" \ - "140 /quotesinglbase\n" \ - "141 /quotedblbase\n" \ - "142 /quotedblright\n" \ - "143 /ellipsis\n" \ - "144 /dotlessi\n" \ - "145 /grave\n" \ - "146 /acute\n" \ - "147 /circumflex\n" \ - "148 /tilde\n" \ - "149 /oe\n" \ - "150 /breve\n" \ - "151 /dotaccent\n" \ - "152 /perthousand\n" \ - "153 /emdash\n" \ - "154 /ring\n" \ - "155 /Lslash\n" \ - "156 /OE\n" \ - "157 /hungarumlaut\n" \ - "158 /ogonek\n" \ - "159 /caron\n" \ - "160 /lslash\n" \ - "161 /exclamdown\n" \ - "162 /cent\n" \ - "163 /sterling\n" \ - "164 /currency\n" \ - "165 /yen\n" \ - "166 /brokenbar\n" \ - "167 /section\n" \ - "168 /dieresis\n" \ - "169 /copyright\n" \ - "170 /ordfeminine\n" \ - "171 /guillemotleft\n" \ - "172 /logicalnot\n" \ - "173 /hyphen\n" \ - "174 /registered\n" \ - "175 /macron\n" \ - "176 /degree\n" \ - "177 /plusminus\n" \ - "178 /twosuperior\n" \ - "179 /threesuperior\n" \ - "180 /acute\n" \ - "181 /mu\n" \ - "182 /paragraph\n" \ - "183 /periodcentered\n" \ - "184 /cedilla\n" \ - "185 /onesuperior\n" \ - "186 /ordmasculine\n" \ - "187 /guillemotright\n" \ - "188 /onequarter\n" \ - "189 /onehalf\n" \ - "190 /threequarters\n" \ - "191 /questiondown\n" \ - "192 /Agrave\n" \ - "193 /Aacute\n" \ - "194 /Acircumflex\n" \ - "195 /Atilde\n" \ - "196 /Adieresis\n" \ - "197 /Aring\n" \ - "198 /AE\n" \ - "199 /Ccedilla\n" \ - "200 /Egrave\n" \ - "201 /Eacute\n" \ - "202 /Ecircumflex\n" \ - "203 /Edieresis\n" \ - "204 /Igrave\n" \ - "205 /Iacute\n" \ - "206 /Icircumflex\n" \ - "207 /Idieresis\n" \ - "208 /Eth\n" \ - "209 /Ntilde\n" \ - "210 /Ograve\n" \ - "211 /Oacute\n" \ - "212 /Ocircumflex\n" \ - "213 /Otilde\n" \ - "214 /Odieresis\n" \ - "215 /multiply\n" \ - "216 /Oslash\n" \ - "217 /Ugrave\n" \ - "218 /Uacute\n" \ - "219 /Ucircumflex\n" \ - "220 /Udieresis\n" \ - "221 /Yacute\n" \ - "222 /Thorn\n" \ - "223 /germandbls\n" \ - "224 /agrave\n" \ - "225 /aacute\n" \ - "226 /acircumflex\n" \ - "227 /atilde\n" \ - "228 /adieresis\n" \ - "229 /aring\n" \ - "230 /ae\n" \ - "231 /ccedilla\n" \ - "232 /egrave\n" \ - "233 /eacute\n" \ - "234 /ecircumflex\n" \ - "235 /edieresis\n" \ - "236 /igrave\n" \ - "237 /iacute\n" \ - "238 /icircumflex\n" \ - "239 /idieresis\n" \ - "240 /eth\n" \ - "241 /ntilde\n" \ - "242 /ograve\n" \ - "243 /oacute\n" \ - "244 /ocircumflex\n" \ - "245 /otilde\n" \ - "246 /odieresis\n" \ - "247 /divide\n" \ - "248 /oslash\n" \ - "249 /ugrave\n" \ - "250 /uacute\n" \ - "251 /ucircumflex\n" \ - "252 /udieresis\n" \ - "253 /yacute\n" \ - "254 /thorn\n" \ - "255 /ydieresis\n" \ - "] def" + "/reencsmalldict 12 dict def\n" \ + "/ReEncodeSmall { reencsmalldict begin\n" \ + "/newcodesandnames exch def /newfontname exch def\n" \ + "/basefontname exch def\n" \ + "/basefontdict basefontname findfont def\n" \ + "/newfont basefontdict maxlength dict def\n" \ + "basefontdict { exch dup /FID ne { dup /Encoding eq\n" \ + "{ exch dup length array copy newfont 3 1 roll put }\n" \ + "{ exch newfont 3 1 roll put }\n" \ + "ifelse }\n" \ + "{ pop pop }\n" \ + "ifelse } forall\n" \ + "newfont /FontName newfontname put\n" \ + "newcodesandnames aload pop newcodesandnames length 2 idiv\n" \ + "{ newfont /Encoding get 3 1 roll put } repeat\n" \ + "newfontname newfont definefont pop end } def\n" \ + "/charvec [\n" \ + "026 /Scaron\n" \ + "027 /Ydieresis\n" \ + "028 /Zcaron\n" \ + "029 /scaron\n" \ + "030 /trademark\n" \ + "031 /zcaron\n" \ + "032 /space\n" \ + "033 /exclam\n" \ + "034 /quotedbl\n" \ + "035 /numbersign\n" \ + "036 /dollar\n" \ + "037 /percent\n" \ + "038 /ampersand\n" \ + "039 /quoteright\n" \ + "040 /parenleft\n" \ + "041 /parenright\n" \ + "042 /asterisk\n" \ + "043 /plus\n" \ + "044 /comma\n" \ + "045 /minus\n" \ + "046 /period\n" \ + "047 /slash\n" \ + "048 /zero\n" \ + "049 /one\n" \ + "050 /two\n" \ + "051 /three\n" \ + "052 /four\n" \ + "053 /five\n" \ + "054 /six\n" \ + "055 /seven\n" \ + "056 /eight\n" \ + "057 /nine\n" \ + "058 /colon\n" \ + "059 /semicolon\n" \ + "060 /less\n" \ + "061 /equal\n" \ + "062 /greater\n" \ + "063 /question\n" \ + "064 /at\n" \ + "065 /A\n" \ + "066 /B\n" \ + "067 /C\n" \ + "068 /D\n" \ + "069 /E\n" \ + "070 /F\n" \ + "071 /G\n" \ + "072 /H\n" \ + "073 /I\n" \ + "074 /J\n" \ + "075 /K\n" \ + "076 /L\n" \ + "077 /M\n" \ + "078 /N\n" \ + "079 /O\n" \ + "080 /P\n" \ + "081 /Q\n" \ + "082 /R\n" \ + "083 /S\n" \ + "084 /T\n" \ + "085 /U\n" \ + "086 /V\n" \ + "087 /W\n" \ + "088 /X\n" \ + "089 /Y\n" \ + "090 /Z\n" \ + "091 /bracketleft\n" \ + "092 /backslash\n" \ + "093 /bracketright\n" \ + "094 /asciicircum\n" \ + "095 /underscore\n" \ + "096 /quoteleft\n" \ + "097 /a\n" \ + "098 /b\n" \ + "099 /c\n" \ + "100 /d\n" \ + "101 /e\n" \ + "102 /f\n" \ + "103 /g\n" \ + "104 /h\n" \ + "105 /i\n" \ + "106 /j\n" \ + "107 /k\n" \ + "108 /l\n" \ + "109 /m\n" \ + "110 /n\n" \ + "111 /o\n" \ + "112 /p\n" \ + "113 /q\n" \ + "114 /r\n" \ + "115 /s\n" \ + "116 /t\n" \ + "117 /u\n" \ + "118 /v\n" \ + "119 /w\n" \ + "120 /x\n" \ + "121 /y\n" \ + "122 /z\n" \ + "123 /braceleft\n" \ + "124 /bar\n" \ + "125 /braceright\n" \ + "126 /asciitilde\n" \ + "127 /.notdef\n" \ + "128 /fraction\n" \ + "129 /florin\n" \ + "130 /quotesingle\n" \ + "131 /quotedblleft\n" \ + "132 /guilsinglleft\n" \ + "133 /guilsinglright\n" \ + "134 /fi\n" \ + "135 /fl\n" \ + "136 /endash\n" \ + "137 /dagger\n" \ + "138 /daggerdbl\n" \ + "139 /bullet\n" \ + "140 /quotesinglbase\n" \ + "141 /quotedblbase\n" \ + "142 /quotedblright\n" \ + "143 /ellipsis\n" \ + "144 /dotlessi\n" \ + "145 /grave\n" \ + "146 /acute\n" \ + "147 /circumflex\n" \ + "148 /tilde\n" \ + "149 /oe\n" \ + "150 /breve\n" \ + "151 /dotaccent\n" \ + "152 /perthousand\n" \ + "153 /emdash\n" \ + "154 /ring\n" \ + "155 /Lslash\n" \ + "156 /OE\n" \ + "157 /hungarumlaut\n" \ + "158 /ogonek\n" \ + "159 /caron\n" \ + "160 /lslash\n" \ + "161 /exclamdown\n" \ + "162 /cent\n" \ + "163 /sterling\n" \ + "164 /currency\n" \ + "165 /yen\n" \ + "166 /brokenbar\n" \ + "167 /section\n" \ + "168 /dieresis\n" \ + "169 /copyright\n" \ + "170 /ordfeminine\n" \ + "171 /guillemotleft\n" \ + "172 /logicalnot\n" \ + "173 /hyphen\n" \ + "174 /registered\n" \ + "175 /macron\n" \ + "176 /degree\n" \ + "177 /plusminus\n" \ + "178 /twosuperior\n" \ + "179 /threesuperior\n" \ + "180 /acute\n" \ + "181 /mu\n" \ + "182 /paragraph\n" \ + "183 /periodcentered\n" \ + "184 /cedilla\n" \ + "185 /onesuperior\n" \ + "186 /ordmasculine\n" \ + "187 /guillemotright\n" \ + "188 /onequarter\n" \ + "189 /onehalf\n" \ + "190 /threequarters\n" \ + "191 /questiondown\n" \ + "192 /Agrave\n" \ + "193 /Aacute\n" \ + "194 /Acircumflex\n" \ + "195 /Atilde\n" \ + "196 /Adieresis\n" \ + "197 /Aring\n" \ + "198 /AE\n" \ + "199 /Ccedilla\n" \ + "200 /Egrave\n" \ + "201 /Eacute\n" \ + "202 /Ecircumflex\n" \ + "203 /Edieresis\n" \ + "204 /Igrave\n" \ + "205 /Iacute\n" \ + "206 /Icircumflex\n" \ + "207 /Idieresis\n" \ + "208 /Eth\n" \ + "209 /Ntilde\n" \ + "210 /Ograve\n" \ + "211 /Oacute\n" \ + "212 /Ocircumflex\n" \ + "213 /Otilde\n" \ + "214 /Odieresis\n" \ + "215 /multiply\n" \ + "216 /Oslash\n" \ + "217 /Ugrave\n" \ + "218 /Uacute\n" \ + "219 /Ucircumflex\n" \ + "220 /Udieresis\n" \ + "221 /Yacute\n" \ + "222 /Thorn\n" \ + "223 /germandbls\n" \ + "224 /agrave\n" \ + "225 /aacute\n" \ + "226 /acircumflex\n" \ + "227 /atilde\n" \ + "228 /adieresis\n" \ + "229 /aring\n" \ + "230 /ae\n" \ + "231 /ccedilla\n" \ + "232 /egrave\n" \ + "233 /eacute\n" \ + "234 /ecircumflex\n" \ + "235 /edieresis\n" \ + "236 /igrave\n" \ + "237 /iacute\n" \ + "238 /icircumflex\n" \ + "239 /idieresis\n" \ + "240 /eth\n" \ + "241 /ntilde\n" \ + "242 /ograve\n" \ + "243 /oacute\n" \ + "244 /ocircumflex\n" \ + "245 /otilde\n" \ + "246 /odieresis\n" \ + "247 /divide\n" \ + "248 /oslash\n" \ + "249 /ugrave\n" \ + "250 /uacute\n" \ + "251 /ucircumflex\n" \ + "252 /udieresis\n" \ + "253 /yacute\n" \ + "254 /thorn\n" \ + "255 /ydieresis\n" \ + "] def" static void @@ -1326,25 +1327,25 @@ ps_list_tracks(void) { char line[200]=""; if ( strlen(cd_info[i].title) ) - strcat(line, cd_info[i].title); + strcat(line, cd_info[i].title); if ( strlen(cd_info[i].artist) > 0 ) { - if (strlen(cd_info[i].title)) - strcat(line, " / "); - strcat(line, cd_info[i].artist); + if (strlen(cd_info[i].title)) + strcat(line, " / "); + strcat(line, cd_info[i].artist); } printf("150 %d moveto (%s) show\n", y, line); } printf("timefont setfont\n"); printf("420 %d moveto (%2d:%02d) show\n", y, - s / CDIO_CD_SECS_PER_MIN, s % CDIO_CD_SECS_PER_MIN); + s / CDIO_CD_SECS_PER_MIN, s % CDIO_CD_SECS_PER_MIN); } /* Seitenbanner */ printf("/HelveticaLatin1 findfont 12 scalefont setfont\n"); printf(" 97 105 moveto (%s: %s) 90 rotate show -90 rotate\n", - artist, title); + artist, title); printf("493 425 moveto (%s: %s) -90 rotate show 90 rotate\n", - artist, title); + artist, title); printf("showpage\n"); } @@ -1404,7 +1405,7 @@ main(int argc, char *argv[]) case 'v': b_verbose = true; if (cdio_loglevel_default > CDIO_LOG_INFO) - cdio_loglevel_default = CDIO_LOG_INFO; + cdio_loglevel_default = CDIO_LOG_INFO; break; case 'd': debug = 1; @@ -1423,15 +1424,15 @@ main(int argc, char *argv[]) case 't': if (NULL != (h = strchr(optarg,'-'))) { - *h = 0; - start_track = atoi(optarg); - stop_track = atoi(h+1)+1; - if (0 == start_track) start_track = 1; - if (1 == stop_track) stop_track = CDIO_CDROM_LEADOUT_TRACK; + *h = 0; + start_track = atoi(optarg); + stop_track = atoi(h+1)+1; + if (0 == start_track) start_track = 1; + if (1 == stop_track) stop_track = CDIO_CDROM_LEADOUT_TRACK; } else { - start_track = atoi(optarg); - stop_track = start_track+1; - one_track = 1; + start_track = atoi(optarg); + stop_track = start_track+1; + one_track = 1; } b_interactive = false; cd_op = PLAY_TRACK; @@ -1487,7 +1488,7 @@ main(int argc, char *argv[]) exit(2); } ppsz_cdda_drives = cdio_get_devices_with_cap(ppsz_all_cd_drives, - CDIO_FS_AUDIO, false); + CDIO_FS_AUDIO, false); if (!ppsz_cdda_drives || !ppsz_cdda_drives[0]) { fprintf(stderr, "Can't find a CD-ROM drive with a CD-DA in it\n"); exit(3); @@ -1539,75 +1540,75 @@ main(int argc, char *argv[]) case PS_LIST_TRACKS: case LIST_TRACKS: case PLAY_TRACK: - read_toc(p_cdio); + read_toc(p_cdio); default: - break; + break; } if (p_cdio) - switch (cd_op) { - case STOP_PLAYING: - b_cd = true; - i_rc = cd_stop(p_cdio) ? 0 : 1; - break; - case EJECT_CD: - /* Should have been handled above. */ - cd_eject(); - break; - case LIST_TRACKS: - list_tracks(); - break; - case PS_LIST_TRACKS: - ps_list_tracks(); - break; - - case PLAY_TRACK: - /* play just this one track */ - if (b_record) { - printf("%s / %s\n", artist, title); - if (one_track) - printf("%s\n", cd_info[start_track].title); - } - i_rc = play_track(start_track, stop_track) ? 0 : 1; - break; - - case PLAY_CD: - if (b_record) - printf("%s / %s\n", artist, title); - play_track(1,CDIO_CDROM_LEADOUT_TRACK); - break; - - case SET_VOLUME: - i_rc = set_volume_level(p_cdio, i_volume_level); - break; - - case LIST_SUBCHANNEL: - if (read_subchannel(p_cdio)) { - if (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || - sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) { - { - printf("track %2d - %02x:%02x (%02x:%02x abs) ", - sub.track, sub.rel_addr.m, sub.rel_addr.s, - sub.abs_addr.m, sub.abs_addr.s); - } - } - printf("drive state: %s\n", - mmc_audio_state2str(sub.audio_status)); - } else { - i_rc = 1; - } - break; - case CLOSE_CD: /* Handled below */ - case LIST_KEYS: - case TOGGLE_PAUSE: - case EXIT_PROGRAM: - case NO_OP: - break; - } + switch (cd_op) { + case STOP_PLAYING: + b_cd = true; + i_rc = cd_stop(p_cdio) ? 0 : 1; + break; + case EJECT_CD: + /* Should have been handled above. */ + cd_eject(); + break; + case LIST_TRACKS: + list_tracks(); + break; + case PS_LIST_TRACKS: + ps_list_tracks(); + break; + + case PLAY_TRACK: + /* play just this one track */ + if (b_record) { + printf("%s / %s\n", artist, title); + if (one_track) + printf("%s\n", cd_info[start_track].title); + } + i_rc = play_track(start_track, stop_track) ? 0 : 1; + break; + + case PLAY_CD: + if (b_record) + printf("%s / %s\n", artist, title); + play_track(1,CDIO_CDROM_LEADOUT_TRACK); + break; + + case SET_VOLUME: + i_rc = set_volume_level(p_cdio, i_volume_level); + break; + + case LIST_SUBCHANNEL: + if (read_subchannel(p_cdio)) { + if (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || + sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) { + { + printf("track %2d - %02x:%02x (%02x:%02x abs) ", + sub.track, sub.rel_addr.m, sub.rel_addr.s, + sub.abs_addr.m, sub.abs_addr.s); + } + } + printf("drive state: %s\n", + mmc_audio_state2str(sub.audio_status)); + } else { + i_rc = 1; + } + break; + case CLOSE_CD: /* Handled below */ + case LIST_KEYS: + case TOGGLE_PAUSE: + case EXIT_PROGRAM: + case NO_OP: + break; + } else if (CLOSE_CD == cd_op) { - i_rc = (DRIVER_OP_SUCCESS == cdio_close_tray(psz_device, NULL)) - ? 0 : 1; + i_rc = (DRIVER_OP_SUCCESS == cdio_close_tray(psz_device, NULL)) + ? 0 : 1; } else { - fprintf(stderr,"no CD in drive (%s)\n", psz_device); + fprintf(stderr,"no CD in drive (%s)\n", psz_device); } } } @@ -1629,79 +1630,79 @@ main(int argc, char *argv[]) if (1 == select_wait(b_cd ? 1 : 5)) { switch (key = getch()) { case '-': - decrease_volume_level(p_cdio); - break; + decrease_volume_level(p_cdio); + break; case '+': - increase_volume_level(p_cdio); - break; + increase_volume_level(p_cdio); + break; case 'A': case 'a': - auto_mode = !auto_mode; - break; + auto_mode = !auto_mode; + break; case 'X': case 'x': - nostop=1; - /* fall through */ + nostop=1; + /* fall through */ case 'Q': case 'q': - b_sig = true; - break; + b_sig = true; + break; case 'E': case 'e': - cd_eject(); - break; + cd_eject(); + break; case 's': - cd_stop(p_cdio); - break; + cd_stop(p_cdio); + break; case 'C': case 'c': - cd_close(psz_device); - break; + cd_close(psz_device); + break; case 'L': case 'l': - b_all_tracks = !b_all_tracks; - if (b_all_tracks) - display_tracks(); - else { - i_last_display_track = CDIO_INVALID_TRACK; - display_cdinfo(p_cdio, i_tracks, i_first_track); - } - - break; + b_all_tracks = !b_all_tracks; + if (b_all_tracks) + display_tracks(); + else { + i_last_display_track = CDIO_INVALID_TRACK; + display_cdinfo(p_cdio, i_tracks, i_first_track); + } + + break; case 'K': case 'k': case 'h': case 'H': case '?': - list_keys(); - break; + list_keys(); + break; case ' ': case 'P': case 'p': - toggle_pause(); - break; + toggle_pause(); + break; case KEY_RIGHT: - if (b_cd && - (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || - sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY)) - play_track(sub.track+1, CDIO_CDROM_LEADOUT_TRACK); - else - play_track(1,CDIO_CDROM_LEADOUT_TRACK); - break; + if (b_cd && + (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || + sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY)) + play_track(sub.track+1, CDIO_CDROM_LEADOUT_TRACK); + else + play_track(1,CDIO_CDROM_LEADOUT_TRACK); + break; case KEY_LEFT: - if (b_cd && - (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || - sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY)) - play_track(sub.track-1,CDIO_CDROM_LEADOUT_TRACK); - break; + if (b_cd && + (sub.audio_status == CDIO_MMC_READ_SUB_ST_PAUSED || + sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY)) + play_track(sub.track-1,CDIO_CDROM_LEADOUT_TRACK); + break; case KEY_UP: - if (b_cd && sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) - skip(10); - break; + if (b_cd && sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) + skip(10); + break; case KEY_DOWN: - if (b_cd && sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) - skip(-10); - break; + if (b_cd && sub.audio_status == CDIO_MMC_READ_SUB_ST_PLAY) + skip(-10); + break; case '1': case '2': case '3': @@ -1711,11 +1712,11 @@ main(int argc, char *argv[]) case '7': case '8': case '9': - play_track(key - '0', CDIO_CDROM_LEADOUT_TRACK); - break; + play_track(key - '0', CDIO_CDROM_LEADOUT_TRACK); + break; case '0': - play_track(10, CDIO_CDROM_LEADOUT_TRACK); - break; + play_track(10, CDIO_CDROM_LEADOUT_TRACK); + break; case KEY_F(1): case KEY_F(2): case KEY_F(3): @@ -1736,8 +1737,8 @@ main(int argc, char *argv[]) case KEY_F(18): case KEY_F(19): case KEY_F(20): - play_track(key - KEY_F(1) + 11, CDIO_CDROM_LEADOUT_TRACK); - break; + play_track(key - KEY_F(1) + 11, CDIO_CDROM_LEADOUT_TRACK); + break; } } } |