Example #1
0
int ascending (void) {
    static int i;
     scrBegin;
     for (i=0; i<10; i++) {
        scrReturn(i);
     }
     scrFinish(-1);
}
Example #2
0
static State StateInitPlayer(StateAction action) {
    scrDeclare;

    if (action == Enter) {
        PowerToPeripherals(1);
        NumTracks = 0;
        scrReset;
        return Continue;
    }
    
    if (action == Update) {
        if (BtnPlay->stateChanged && BtnPlay->state == Pressed) {
            GoToPlayTrack = 1;
        }

        if (BtnSelect->stateChanged && BtnSelect->state == Pressed) {
            RotateTrack();
            Set7SegmentDisplay(TrackNumber);
        }
        
        if (Time < StateWaitUntil) {
            return Continue;
        }
        
        scrBegin;
        scrSleep(1300);
        static u32 numFilesTimeout;
        numFilesTimeout = Time + 1000;
        mp3_set_volume(15);
        scrSleep(20);
        mp3_get_num_files_async();
               
        while (1) {
            scrReturn(Continue);
            
            if (Time > numFilesTimeout) {
                scrReturn(Sleep);
            }
            
            if (!mp3_check_for_result()) {
                continue;
            }

            NumTracks = mp3_get_result();
            
            if (TrackNumber > NumTracks) {
                TrackNumber = NumTracks;
                Set7SegmentDisplay(TrackNumber);
            }           
            
            if (NumTracks == 0) {
                scrReturn(Sleep);
            }

            if (GoToPlayTrack) {
                scrReturn(PlayTrack);
            }

            scrReturn(StandBy);
        }
        
        // Shouldn't come here
        scrFinish(None);
    }
    
    return Continue;
}
Example #3
0
static State StatePlayTrack(StateAction action) {
    scrDeclare;
    static u8 trackNumber;

    if (action == Enter) {
        if (TrackNumber == 0) {
            // Random track
            trackNumber = GetRandomTrackNumber(NumTracks);
            // trackNumber = 0;
        } else {
            // Predefined track
            trackNumber = TrackNumber - 1;
        }
        
        scrReset;
        return Continue;
    }
    
    if (action == Update) {
        if (BtnSelect->stateChanged && BtnSelect->state == Pressed) {
            RotateTrack();
            Set7SegmentDisplay(TrackNumber);
        }

        if (Time < StateWaitUntil) {
            return Continue;
        }
        
        scrBegin;
        mp3_play_num(trackNumber);
        
        // Wait for player to start
        static u32 enterStandbyTime;
        enterStandbyTime = Time + 1000;
        
        while (1) {
            if (PlayerPlaying()) {
                break;
            }
            
            if (Time > enterStandbyTime) {
                scrReturn(StandBy);
            }
            
            scrReturn(Continue);
        }

        // Wait for the player to stop
        while (1) {
            if (BtnPlay->stateChanged && BtnPlay->state == Pressed) {
                scrReturn(Restart);
            }
            
            if (!PlayerPlaying()) {
                scrReturn(StandBy);
            }
            
            scrReturn(Continue);
        }
        
        // Shouldn't come here
        scrFinish(None);
    }
    
    return Continue;
}
Example #4
0
void scrWrite( unsigned char c ) {
	
	unsigned char d,e;
	
	switch ( c ) {
		case 8:
			scrBackSpace();
			break;
		case 127:
			scrBackSpace();
			break;
		case 10:
			scrReturn();
			scrRepaint();
			break;
		case 13:
			break;
		case 27:
			#ifdef _KEYBOARD
				#ifndef THREAD_KEYBOARD	
					kbPutCh();
				#endif
				switch ( kbGetCh() ) {
			#else
				d = getch();
				switch ( d ) {
			#endif
				case 91:
				#ifdef _KEYBOARD
					#ifndef THREAD_KEYBOARD	
						kbPutCh();
					#endif
					switch ( kbGetCh() ) {
				#else
					e = getch();
					switch ( e ) {
				#endif
						case 65:		//	KEY_UP
							scrDecY();
							break;
						case 66:		//	KEY_DOWN
							scrIncY();
							break;
						case 67:		//	KEY_RIGHT
							scrIncX();
							break;
						case 68:		//	KEY_LEFT
							scrDecX();
							break;
						default:
							break;
					}
					break;
				default:
					break;
			}
			break;
		default:
			if ( p_screen->x_pos < SCR_XMAX_SIZE ) {
				p_screen->Buffer[ p_screen->y_pos*SCR_XMAX_SIZE + p_screen->x_pos ] = c;
				scrIncX();
			}
	}

	SETBIT(p_screen->status,f_srcContentChanged);
}

unsigned char scrRead() {
	return ( p_screen->Buffer[ p_screen->y_pos*SCR_XMAX_SIZE + p_screen->x_pos ] );
}

//----------------------------------------------------

void scrRepaint() {

	curscoord x, y, xs, xe, ys, ye;
	
	if ( TSTBIT(p_screen->status,f_srcRepainting) )
		return;
		
	SETBIT(p_screen->status,f_srcRepainting);
	
	if ( TSTBIT(p_screen->status,f_srcContentChanged) ) {
	
		x  = ( p_screen->x_pos<SCR_POSX_MAX ? p_screen->x_pos : SCR_POSX_MAX );
		y  = ( p_screen->y_pos<SCR_POSY_MAX ? p_screen->y_pos : SCR_POSY_MAX );
		
		xs = ( x < dspXmax( p_display ) ? 0 : x - dspXmax( p_display ) + 1 );
		xe = xs + dspXmax( p_display ) - 1;
		ys = ( y < dspYmax( p_display ) ? 0 : y - dspYmax( p_display ) + 1 );
		ye = ys + dspYmax( p_display ) - 1;

		dspCursorHome( p_display );
		for ( y = ys; y <= ye; y++ ) {
			for ( x = xs; x <= xe; x++ ) {
				if ( x-xs < SCR_XMAX_SIZE && y-ys < SCR_YMAX_SIZE ) {
					dspWrite( p_display, p_screen->Buffer[ y*SCR_XMAX_SIZE + x ] );
				} else {
					dspWrite( p_display, '~' );
				}
			}
		}
		#ifndef THREAD_DISPLAY_REPAINT
		dspRefresh( p_display );
		#endif
	
		CLRBIT(p_screen->status,f_srcContentChanged);
		
	}
	
	CLRBIT(p_screen->status,f_srcRepainting);
	
}