From a96622cbe7050d1d0fd59eec9b187ab3a3053bd9 Mon Sep 17 00:00:00 2001 From: Ron Pedde Date: Wed, 8 Sep 2004 04:07:53 +0000 Subject: [PATCH] Add bitrate keyword to smart playlists --- src/lexer.l | 1 + src/parser.y | 2 ++ src/playlist.c | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/src/lexer.l b/src/lexer.l index b2ef8484..59b43d6c 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -53,6 +53,7 @@ grouping { yylval.ival=GROUPING; return(GROUPING); } year { yylval.ival=YEAR; return(YEAR); } bpm { yylval.ival=BPM; return(BPM); } +bitrate { yylval.ival=BITRATE; return(BITRATE); } is { yylval.ival=IS; return(IS); } includes { yylval.ival=INCLUDES; return(INCLUDES); } diff --git a/src/parser.y b/src/parser.y index 057c3a25..c1287f9e 100644 --- a/src/parser.y +++ b/src/parser.y @@ -79,6 +79,7 @@ int pl_number=2; %token YEAR %token BPM +%token BITRATE %type expression %type predicate @@ -109,6 +110,7 @@ predicate: strtag strbool ID { $$=pl_newcharpredicate($1, $2, $3); } inttag: YEAR | BPM +| BITRATE ; intbool: EQUALS { $$ = $1; } diff --git a/src/playlist.c b/src/playlist.c index 58baa4b0..c8247fd2 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -119,6 +119,9 @@ void pl_dump_node(PL_NODE *pnode, int indent) { case BPM: printf("BPM "); break; + case BITRATE: + printf("BITRATE "); + break; default: printf (" "); break; @@ -293,6 +296,9 @@ int pl_eval_node(MP3FILE *pmp3, PL_NODE *pnode) { case BPM: ival=pmp3->bpm; break; + case BITRATE: + ival=pmp3->bitrate / 1024; // bitrate in Kbps + break; } boolarg=(pnode->op) & 0x7FFFFFFF;