$NetBSD: patch-ad,v 1.4 2004/01/28 10:56:21 agc Exp $ --- main.c.orig 2000-01-26 00:11:56.000000000 +0000 +++ main.c 2004-01-28 10:53:42.000000000 +0000 @@ -115,8 +115,6 @@ menus_active = FALSE; /*initialize screen routines*/ - sLang_init(); - set_color_schemes(); ncurses_init(); set_ncurses_color_schemes(); create_windows(); @@ -125,19 +123,9 @@ change_channel(&ch1,mp3Path1); change_channel(&ch2,mp3Path2); - /*display windows*/ - display_bar(num_menus, menu_name); - display_ch_window(active_channel); - display_track_path(active_channel,sim_play,ch1_current,ch2_current); - display_track_status(); - adjust_display(get_code()); - display_listdata(); - display_player_status(sim_play,playmode); - display_volume(ch1_volume_pos,ch2_volume_pos,active_bar); - display_speed(ch1_speed_pos,ch2_speed_pos,active_bar); - display_fader(fader_pos); - + refresh_windows(); + display_bar(num_menus,menu_name); while(TRUE) { @@ -149,9 +137,9 @@ if((ch1.end==1)||(ch2.end==1)) display_track_status(); if(rcount==5) { - refresh_windows(); - display_bar(num_menus, menu_name); - rcount=0; + refresh_windows(); + display_bar(num_menus,menu_name); + rcount=0; } if(playmode==1) /*loop play*/ @@ -173,7 +161,7 @@ } } - else if(playmode==2) /*continous play*/ + else if(playmode==2) /*continous play*/ { if((ch1.on==0)&&(ch1.end==1)) { @@ -215,7 +203,7 @@ } } - else if(playmode==3) /*random play*/ + else if(playmode==3) /*random play*/ { if((ch1.on==0)&&(ch1.end==1)) { @@ -259,9 +247,9 @@ { { display_info(inactive_info); - switch(get_code()) + switch(getch()) { - case SL_KEY_LEFT: + case KEY_LEFT: vpos=0; hpos=(hpos>0) ? --hpos: num_menus-1; display_bar(num_menus, menu_name); @@ -270,7 +258,7 @@ display_menu(menu_item,num_items); break; - case SL_KEY_RIGHT: + case KEY_RIGHT: vpos=0; hpos=(hpos0) ? --vpos: num_items[hpos]-1; display_menu(menu_item,num_items); break; - case SL_KEY_DOWN: + case KEY_DOWN: vpos=(vpos=(fader_bars/2))fader_pos=(fader_bars/2) ; if(fader_pos == 0) @@ -660,10 +646,10 @@ display_fader(fader_pos); break; - case SL_KEY_DOWN: - case SL_KEY_UP: - case SL_KEY_PPAGE: - case SL_KEY_NPAGE: + case KEY_DOWN: + case KEY_UP: + case KEY_PPAGE: + case KEY_NPAGE: adjust_display(extcode); display_ch_window(active_channel); display_listdata(); @@ -671,9 +657,10 @@ case'r': /*redraws screen*/ case'R': + clearok(stdscr,TRUE); refresh_windows(); - display_bar(num_menus, menu_name); - break ; + display_bar(num_menus,menu_name); + break; default: for(j=0; j= height-1)&&(current->fLink!=NULL)) { top=top->fLink; current=current->fLink; @@ -800,7 +787,7 @@ else if(current->fLink!=NULL) current=current->fLink; break; - case SL_KEY_UP: + case KEY_UP: if((top->bLink!=NULL)&&(top==current)) { top=top->bLink; current=current->bLink; @@ -809,14 +796,14 @@ if(current->bLink!=NULL) current=current->bLink ; break; - case SL_KEY_NPAGE: /*pagedown*/ + case KEY_NPAGE: /*pagedown*/ while((index < height-1)&&(current->fLink!=NULL)) { top=top->fLink; current=current->fLink; index++; } break; - case SL_KEY_PPAGE:/*pageup*/ + case KEY_PPAGE:/*pageup*/ while((index < height-1)&(top->bLink!=NULL)) { top=top->bLink; current=current->bLink; index++; @@ -884,11 +871,9 @@ height1,width1; node *top, *current, *temp; - if (active_channel==CHANNEL_1) { top=ch1_Head; current=ch1_current; - } else if(active_channel==CHANNEL_2) { @@ -904,46 +889,53 @@ while(temp!=bHead){tracktotal++;temp=temp->fLink;} /* display current track number and total tracks */ - /*wmove(chWin,height1-1,width1-15);*/ mvwprintw(chWin,height1-1,width1-15,"[%5i][%5i]",tracknum,tracktotal); - touchwin(chWin); wrefresh(chWin); getmaxyx(subWin,height,width); - wbkgd(subWin,COLOR_PAIR(9)|A_BOLD); while (top!=NULL) { + char *fnstart; fpath=top->filePath; playcount=top->playcount; /*get songname from path, the songname is assumed to be the characters after the last forward slash(/) */ - songname=strstr(strrchr(fpath,'/'),"/")+1; + fnstart = strrchr(fpath,'/'); + if (fnstart == NULL) + songname=fpath; + else + songname=strstr(fnstart,"/")+1; if(current==top) + { if(active_channel==CHANNEL_1) { - wbkgdset(subWin,COLOR_PAIR(7)|A_BOLD); wattrset(subWin,COLOR_PAIR(7)|A_BOLD); + wbkgdset(subWin,COLOR_PAIR(7)|A_BOLD); } else if(active_channel==CHANNEL_2) { - wbkgdset(subWin,COLOR_PAIR(8)|A_BOLD); wattrset(subWin,COLOR_PAIR(8)|A_BOLD); + wbkgdset(subWin,COLOR_PAIR(8)|A_BOLD); } + } + else + { + wattrset(subWin,COLOR_PAIR(9)); + wbkgdset(subWin,COLOR_PAIR(9)); + } tempname=strdup(songname); /*shorten song so that it fits in channel/display window*/ mvwaddstr(subWin,index,0,tempname); wclrtoeol(subWin); mvwprintw(subWin,index,width-6,"*%5i",playcount); - - touchwin(subWin); - wrefresh(subWin); - wbkgdset(subWin,COLOR_PAIR(9)|A_BOLD); - index++; if(index==height)return; + index++; if(index==height)break; top=top->fLink; } + + wrefresh(subWin); } /*display_listdata */ void menu_action(char *item_name) @@ -967,21 +959,10 @@ void exit_prog(void) { reset_audio(); - sLang_exit(); + ncurses_exit(); gui_exit(); }/*exit_prog*/ -int get_code(void) -{ - int key; - /*qiflush(); */ - /*if(clickcount>=15){flushinp(); clickcount=0;}*/ - if(SLang_input_pending(-10)) key= /*getch(); */ - SLkp_getkey(); - else key=0; - /*clickcount++;*/ - return(key); -} /* get_code */ void refresh_windows(void) { erase();refresh();