From: Francois B <mrs...@us...> - 2004-05-24 00:38:56
|
Update of /cvsroot/openneo/openneo/apps In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31712 Modified Files: volume.h volume.c Log Message: Volume slider function moved to volume.c Index: volume.h =================================================================== RCS file: /cvsroot/openneo/openneo/apps/volume.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** volume.h 20 Jan 2004 05:17:10 -0000 1.1 --- volume.h 24 May 2004 00:38:40 -0000 1.2 *************** *** 12,15 **** --- 12,16 ---- #ifndef _VOLUME_H_ #define _VOLUME_H_ + #include <stdbool.h> /* These functions are to be used to change and display the volume*/ *************** *** 19,21 **** --- 20,25 ---- int volume_step( int step ); + void volume_splash_slider(void); + void volume_change_slider(void); + #endif Index: volume.c =================================================================== RCS file: /cvsroot/openneo/openneo/apps/volume.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** volume.c 29 Feb 2004 23:25:57 -0000 1.4 --- volume.c 24 May 2004 00:38:40 -0000 1.5 *************** *** 19,22 **** --- 19,28 ---- #include "audio.h" #include "log.h" + #include "lang.h" + #include "lcd.h" + #include "button.h" + #include "remote.h" + #include "system.h" + #include "kernel.h" char* volume_get_units(void) *************** *** 133,134 **** --- 139,295 ---- + void volume_splash_slider(void) + { + char buffer[24]; + int i,g,per,button; + int change = 0; + + lcd_set_cgram_bank( CGRAM_BANK_WPS ); + lcd_clear(false); + lcd_puts_fmt(0, 1, str(LANG_VOLUME), FMT_CENTER ); + + while(1){ + + // We wait for a button we want... + button = button_get_w_tmo_flt( HZ/2, BUTTON_UP|BUTTON_DOWN, IR_BUTTON_VOLUP|IR_BUTTON_VOLDN,BUTTON_IR|BUTTON_REPEAT|IR_BUTTON_REPEAT ); + + if( button == BUTTON_NONE ) + break; + + switch( button ){ + case BUTTON_UP: + case BUTTON_UP | BUTTON_REPEAT: + case BUTTON_IR | IR_BUTTON_VOLUP: + case BUTTON_IR | IR_BUTTON_VOLUP | IR_BUTTON_REPEAT: + if(button&(BUTTON_REPEAT|IR_BUTTON_REPEAT)) + change = 2; + else + change = 1; + break; + case BUTTON_DOWN: + case BUTTON_DOWN | BUTTON_REPEAT: + case BUTTON_IR | IR_BUTTON_VOLDN: + case BUTTON_IR | IR_BUTTON_VOLDN | IR_BUTTON_REPEAT: + if(button&(BUTTON_REPEAT|IR_BUTTON_REPEAT)) + change = -2; + else + change = -1; + break; + } + + volume_step( change ); + + snprintf( buffer, sizeof(buffer), " %d%s ", volume_get(), volume_get_units() ); + lcd_puts_fmt(0, 3, buffer, FMT_CENTER ); + + buffer[20] = 0; + + //Volume bar goes from 0-40 + per = global_settings.volume * 40; + per /= sound_max(AUDIO_VOLUME); + + g = per/2; + memset( buffer, CGRAM5_CHAR, g ); + memset( &buffer[g], CGRAM7_CHAR, 20-g ); + + i = per - 2*g; + + if( i ) + buffer[g++] = CGRAM6_CHAR; + + lcd_puts_nopad( 0, 2, buffer); + + lcd_update(); + } + } + + void volume_change_slider(void) + { + char buffer[24]; + int i,g,per; + int button; + int change = 0; + bool exit = false; + int vol = global_settings.volume; + + lcd_set_cgram_bank( CGRAM_BANK_WPS ); + lcd_clear(false); + lcd_puts_fmt(0, 1, str(LANG_VOLUME), FMT_CENTER ); + + while(!exit){ + + snprintf( buffer, sizeof(buffer), " %d%s ", volume_get(), volume_get_units() ); + lcd_puts_fmt(0, 3, buffer, FMT_CENTER ); + + buffer[20] = 0; + + //Volume bar goes from 0-40 + per = global_settings.volume * 40; + per /= sound_max(AUDIO_VOLUME); + + g = per/2; + memset( buffer, CGRAM5_CHAR, g ); + memset( &buffer[g], CGRAM7_CHAR, 20-g ); + + i = per - 2*g; + + if( i ) + buffer[g++] = CGRAM6_CHAR; + + lcd_puts_nopad( 0, 2, buffer); + lcd_update(); + + button = button_get(true); + + switch( button ){ + case BUTTON_UP: + case BUTTON_UP | BUTTON_REPEAT: + case BUTTON_RIGHT: + case BUTTON_RIGHT | BUTTON_REPEAT: + case BUTTON_IR | IR_BUTTON_VOLUP: + case BUTTON_IR | IR_BUTTON_VOLUP | IR_BUTTON_REPEAT: + if(button & (BUTTON_REPEAT|IR_BUTTON_REPEAT)) + change = 2; + else + change = 1; + break; + + case BUTTON_LEFT: + case BUTTON_LEFT | BUTTON_REPEAT: + case BUTTON_DOWN: + case BUTTON_DOWN | BUTTON_REPEAT: + case BUTTON_IR | IR_BUTTON_VOLDN: + case BUTTON_IR | IR_BUTTON_VOLDN | IR_BUTTON_REPEAT: + if(button&(BUTTON_REPEAT|IR_BUTTON_REPEAT)) + change = -2; + else + change = -1; + break; + + case BUTTON_STOP: + case BUTTON_IR | IR_BUTTON_STOP: + case BUTTON_MENU: + case BUTTON_IR | IR_BUTTON_EQ: + + //Restore previous volume + audio_set( AUDIO_VOLUME, vol ); + global_settings.volume = vol; + exit = true; + + case BUTTON_PLAY: + case BUTTON_IR | IR_BUTTON_PLAY: + exit = true; + break; + } + + if( exit ) + break; + + if( change ){ + volume_step( change ); + change = 0; + } + } + + button_get(true); + } |