From 1f254d8574f68d9bff59fe57507be5f9e8249545 Mon Sep 17 00:00:00 2001 From: Jerome Kuptz Date: Tue, 25 Jun 2002 08:58:11 +0000 Subject: initial wps functions git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1169 a1c6a512-1295-4272-9138-f99709370657 --- apps/wps.c | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ apps/wps.h | 9 +++++ 2 files changed, 140 insertions(+) create mode 100644 apps/wps.c create mode 100644 apps/wps.h (limited to 'apps') diff --git a/apps/wps.c b/apps/wps.c new file mode 100644 index 0000000000..eb9b4ba3af --- /dev/null +++ b/apps/wps.c @@ -0,0 +1,131 @@ +#include +#include +#include + +#include "file.h" +#include "lcd.h" +#include "button.h" +#include "kernel.h" +#include "tree.h" +#include "debug.h" +#include "sprintf.h" +#include "settings.h" +#include "wps.h" + + +#define LINE_Y 1 /* initial line */ + +#define PLAY_DISPLAY_DEFAULT 0 +#define PLAY_DISPLAY_FILENAME_SCROLL 1 +#define PLAY_DISPLAY_TRACK_TITLE 2 + +/* demonstrates showing different formats from playtune */ +void wps_show_play(char* filename) +{ + mp3entry mp3; + mp3info(&mp3,filename); + + char buffer[256]; + snprintf(buffer,sizeof(buffer), "%s", mp3.path); + + lcd_clear_display(); + + switch (global_settings.wps_display) + { + case PLAY_DISPLAY_TRACK_TITLE: + { + int ch = '/'; + char* end; + char szArtist[26]; + + char* szTok = strtok_r(buffer, "/", &end); + szTok = strtok_r(NULL, "/", &end); + + // Assume path format of: Genre/Artist/Album/Mp3_file + strncpy(szArtist,szTok,sizeof(szArtist)); + szArtist[sizeof(szArtist)-1] = 0; + char* szDelimit = strrchr(buffer, ch); + +#ifdef HAVE_LCD_BITMAP + lcd_puts(0,0, szArtist?szArtist:""); + lcd_puts_scroll(0,LINE_Y,(++szDelimit)); +#else + lcd_puts(0,0, szArtist?szArtist:""); + lcd_puts_scroll(0,1,(++szDelimit)); +#endif + + + break; + } + case PLAY_DISPLAY_FILENAME_SCROLL: + { + int ch = '/'; + char* szLast = strrchr(buffer, ch); + + if (szLast) + { + lcd_puts_scroll(0,0, (++szLast)); + } else { + lcd_puts_scroll(0,0, buffer); + } + + break; + } + case PLAY_DISPLAY_DEFAULT: + { +#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 + break; + } + + } + + lcd_update(); +} + +/* experimental idea still being sorted out, but want it in the the code tree still so that important playlist info is not forgotten. */ +#if 0 +void wps_show_playlist(char* current, playlist_info_t *list) +{ + + int ch = '/'; + char* szLast = strrchr(current, ch); + char buf[16]; + + buf[15] = 0; + + snprintf(buf, sizeof(buf), "[%d/%d]", list->index, list->amount); + + lcd_clear_display(); + +#ifdef HAVE_LCD_BITMAP + lcd_puts(0, 0, "[Playlist Mode]"); + lcd_puts_scroll(0,LINE_Y, (++szLast)); + lcd_puts(0, LINE_Y+1, buf); +#else + lcd_puts_scroll(0,0, (++szLast)); + lcd_puts(0,1,buf); +#endif + + + lcd_update(); +} +#endif diff --git a/apps/wps.h b/apps/wps.h new file mode 100644 index 0000000000..7b72baa915 --- /dev/null +++ b/apps/wps.h @@ -0,0 +1,9 @@ +#ifndef _WPS_H +#define _WPS_H +#include "id3.h" +#include "playlist.h" + +void wps_show_play(char* filename); +//void wps_show_playlist(char* current, playlist_info_t *list); + +#endif -- cgit v1.2.3