diff options
author | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-27 00:39:24 +0000 |
---|---|---|
committer | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-27 00:39:24 +0000 |
commit | aa127faa3a26124fc4310b17ac1ee78dcbbf028d (patch) | |
tree | dd27a1c121f04a9ad3881fcadeedbf6beb578cb9 /mplayer.c | |
parent | 74e1c9743d984f0eba57aec86b70d268b46db942 (diff) | |
download | mpv-aa127faa3a26124fc4310b17ac1ee78dcbbf028d.tar.bz2 mpv-aa127faa3a26124fc4310b17ac1ee78dcbbf028d.tar.xz |
OSD functionality improved
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@221 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r-- | mplayer.c | 45 |
1 files changed, 36 insertions, 9 deletions
@@ -38,6 +38,7 @@ #include "cfg-mplayer-def.h" #include "libvo/video_out.h" +#include "libvo/sub.h" // CODECS: #include "mp3lib/mp3.h" @@ -464,6 +465,9 @@ if(video_driver && strcmp(video_driver,"help")==0){ if(font_name){ vo_font=read_font_desc(font_name,font_factor); if(!vo_font) printf("Can't load font: %s\n",font_name); + } else { + // try default: + vo_font=read_font_desc(get_path("font/font.desc"),font_factor); } // check video_out driver name: @@ -1143,6 +1147,8 @@ double vout_time_usage=0; double audio_time_usage=0; int grab_frames=0; char osd_text_buffer[64]; +int osd_visible=100; +int osd_function=OSD_PLAY; #ifdef HAVE_LIRC lirc_mp_setup(); @@ -1831,7 +1837,10 @@ switch(has_video){ current_module=NULL; if(eof) break; - if(force_redraw) --force_redraw; + if(force_redraw){ + --force_redraw; + if(!force_redraw) osd_function=OSD_PLAY; + } // printf("A:%6.1f V:%6.1f A-V:%7.3f frame=%5.2f \r",d_audio->pts,d_video->pts,d_audio->pts-d_video->pts,a_frame); // fflush(stdout); @@ -1918,13 +1927,13 @@ switch(has_video){ ++frame_corr_num; #endif - } // while(v_frame<a_frame || force_redraw) - + if(osd_visible){ + --osd_visible; + if(!osd_visible) vo_osd_progbar_type=-1; // disable + } -//================= Update OSD ==================== + } // while(v_frame<a_frame || force_redraw) -sprintf(osd_text_buffer,"%02d:%02d:%02d",(int)v_pts/3600,((int)v_pts/60)%60,((int)v_pts)%60); -vo_osd_text=osd_text_buffer; //================= Keyboard events, SEEKing ==================== @@ -1937,21 +1946,25 @@ vo_osd_text=osd_text_buffer; (c=getch2(0))>0 || (c=mplayer_get_key())>0) switch(c){ // seek 10 sec case KEY_RIGHT: + osd_function=OSD_FFW; rel_seek_secs+=10;break; case KEY_LEFT: + osd_function=OSD_REW; rel_seek_secs-=10;break; // seek 1 min case KEY_UP: + osd_function=OSD_FFW; rel_seek_secs+=60;break; case KEY_DOWN: + osd_function=OSD_REW; rel_seek_secs-=60;break; // delay correction: case '+': - buffer_delay+=0.1; // increase audio buffer size + buffer_delay+=0.1; // increase audio buffer delay a_frame-=0.1; break; case '-': - buffer_delay-=0.1; // decrease audio buffer size + buffer_delay-=0.1; // decrease audio buffer delay a_frame+=0.1; break; // quit @@ -1967,6 +1980,7 @@ vo_osd_text=osd_text_buffer; // pause case 'p': case ' ': + osd_function=OSD_PAUSE; printf("\n------ PAUSED -------\r");fflush(stdout); while( #ifdef HAVE_LIRC @@ -1975,6 +1989,7 @@ vo_osd_text=osd_text_buffer; getch2(20)<=0 && mplayer_get_key()<=0){ video_out->check_events(); } + osd_function=OSD_PLAY; break; } if(rel_seek_secs) @@ -2140,6 +2155,13 @@ switch(file_format){ avi_header.idx_pos,audio_chunk_pos,video_chunk_pos, skip_video_frames,skip_audio_bytes,skip_audio_secs); + // Set OSD: + osd_visible=default_fps; + vo_osd_progbar_type=0; + vo_osd_progbar_value=(demuxer->filepos)/((avi_header.movi_end-avi_header.movi_start)>>8); + printf("avi filepos = %d \n",vo_osd_progbar_value); +// printf("avi filepos = %d (len=%d) \n",demuxer->filepos,(avi_header.movi_end-avi_header.movi_start)); + } break; @@ -2247,7 +2269,12 @@ switch(file_format){ } } // keyboard event handler - +//================= Update OSD ==================== +{ int i; + sprintf(osd_text_buffer,"%c %02d:%02d:%02d",osd_function,(int)v_pts/3600,((int)v_pts/60)%60,((int)v_pts)%60); +// for(i=1;i<=11;i++) osd_text_buffer[10+i]=i;osd_text_buffer[10+i]=0; + vo_osd_text=osd_text_buffer; +} } // while(!eof) |