From a39f566a7f5959d8a85663f0ceccfd468e67af50 Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 16 May 2002 14:48:53 +0000 Subject: Moved play.* to apps/ git-svn-id: svn://svn.rockbox.org/rockbox/trunk@600 a1c6a512-1295-4272-9138-f99709370657 --- apps/play.c | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 apps/play.c (limited to 'apps/play.c') diff --git a/apps/play.c b/apps/play.c new file mode 100644 index 0000000000..89dfa5503e --- /dev/null +++ b/apps/play.c @@ -0,0 +1,109 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2002 Daniel Stenberg + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include + +#include "file.h" +#include "lcd.h" +#include "button.h" +#include "kernel.h" +#include "tree.h" +#include "debug.h" + +#include "id3.h" + +#ifdef MPEG_PLAY +#include "common/mpegplay.h" +#endif + +#define LINE_Y 1 /* initial line */ + +void playtune(char *dir, char *file) +{ + char buffer[256]; + mp3entry mp3; + bool good=1; + + snprintf(buffer, sizeof(buffer), "%s/%s", dir, file); + + if(mp3info(&mp3, buffer)) { + DEBUGF("id3 failure!"); + good=0; + } + lcd_clear_display(); +#ifdef HAVE_LCD_BITMAP + lcd_setmargins(0,0); + lcd_setfont(0); +#endif + + if(!good) { + lcd_puts(0, 0, "[no id3 info]"); + } + else { +#ifdef HAVE_LCD_BITMAP + lcd_puts(0, 0, "[id3 info]"); + lcd_puts(0, LINE_Y, mp3.title?mp3.title:""); + lcd_puts(0, LINE_Y+1, mp3.album?mp3.album:""); + lcd_puts(0, LINE_Y+2, mp3.artist?mp3.artist:""); + + snprintf(buffer,sizeof(buffer), "%d ms", mp3.length); + lcd_puts(0, LINE_Y+3, buffer); + + snprintf(buffer,sizeof(buffer), "%d kbits", mp3.bitrate); + lcd_puts(0, LINE_Y+4, buffer); + + snprintf(buffer,sizeof(buffer), "%d Hz", mp3.frequency); + lcd_puts(0, LINE_Y+5, buffer); +#else + lcd_puts(0, 0, mp3.artist?mp3.artist:""); + lcd_puts(0, 1, mp3.title?mp3.title:""); +#endif + } + +#ifdef HAVE_LCD_BITMAP + lcd_update(); +#endif + +#ifdef MPEG_PLAY + snprintf(buffer,sizeof(buffer), "%s/%s", dir, file); + mpeg_play(buffer); + return; +#endif + + while(1) { + int key = button_get(); + + if(!key) { + sleep(30); + continue; + } + switch(key) { +#ifdef HAVE_RECORDER_KEYPAD + case BUTTON_OFF: + case BUTTON_LEFT: +#else + case BUTTON_STOP: +#endif + return; + break; + } + } +} -- cgit v1.2.3