comparison mplayer.c @ 15862:30cd1a5f4274

Make the OSD display state information when cycling OSD states with 'o'. based on a patch by Paul TT < paulltt - at- hackerjournal - dot - it >
author diego
date Thu, 30 Jun 2005 09:38:55 +0000
parents 9b4bbb6098f6
children 7689a7c41225
comparison
equal deleted inserted replaced
15861:08919136d33e 15862:30cd1a5f4274
1030 int osd_show_percentage = 0; 1030 int osd_show_percentage = 0;
1031 int osd_show_tv_channel = 25; 1031 int osd_show_tv_channel = 25;
1032 int osd_show_ontop = 0; 1032 int osd_show_ontop = 0;
1033 int osd_show_rootwin = 0; 1033 int osd_show_rootwin = 0;
1034 int osd_show_framedropping = 0; 1034 int osd_show_framedropping = 0;
1035 int osd_show_status = 0;
1035 1036
1036 int rtc_fd=-1; 1037 int rtc_fd=-1;
1037 1038
1038 //float a_frame=0; // Audio 1039 //float a_frame=0; // Audio
1039 1040
2916 int v = cmd->args[0].v.i; 2917 int v = cmd->args[0].v.i;
2917 if(v < 0) 2918 if(v < 0)
2918 osd_level=(osd_level+1)%(MAX_OSD_LEVEL+1); 2919 osd_level=(osd_level+1)%(MAX_OSD_LEVEL+1);
2919 else 2920 else
2920 osd_level= v > MAX_OSD_LEVEL ? MAX_OSD_LEVEL : v; 2921 osd_level= v > MAX_OSD_LEVEL ? MAX_OSD_LEVEL : v;
2922 /* Show OSD state when disabled, but not when an explicit
2923 argument is given to the osd command, i.e. in slave mode. */
2924 if (v < 0 && osd_level <= 1)
2925 osd_show_status = 9;
2921 } 2926 }
2922 #endif 2927 #endif
2923 } break; 2928 } break;
2924 case MP_CMD_OSD_SHOW_TEXT : { 2929 case MP_CMD_OSD_SHOW_TEXT : {
2925 #ifdef USE_OSD 2930 #ifdef USE_OSD
3978 #endif 3983 #endif
3979 3984
3980 3985
3981 //================= Update OSD ==================== 3986 //================= Update OSD ====================
3982 #ifdef USE_OSD 3987 #ifdef USE_OSD
3988 if (osd_level == 0 && osd_show_status > 0 && sh_video){
3989 snprintf(vo_osd_text, 63, "OSD: disabled");
3990 vo_osd_changed(OSDTYPE_OSD);
3991 osd_show_status--;
3992 }
3983 if(osd_level>=1 && sh_video){ 3993 if(osd_level>=1 && sh_video){
3984 int pts=sh_video->pts; 3994 int pts=sh_video->pts;
3985 char osd_text_tmp[64]; 3995 char osd_text_tmp[64];
3986 if(pts==osd_last_pts-1) ++pts; else osd_last_pts=pts; 3996 if(pts==osd_last_pts-1) ++pts; else osd_last_pts=pts;
3987 vo_osd_text=osd_text_buffer; 3997 vo_osd_text=osd_text_buffer;
4109 snprintf(osd_text_tmp, 63, "%c %02d:%02d:%02d / %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,len/3600,(len/60)%60,len%60,percentage_text); 4119 snprintf(osd_text_tmp, 63, "%c %02d:%02d:%02d / %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,len/3600,(len/60)%60,len%60,percentage_text);
4110 else 4120 else
4111 snprintf(osd_text_tmp, 63, "%c %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,percentage_text); 4121 snprintf(osd_text_tmp, 63, "%c %02d:%02d:%02d%s",osd_function,pts/3600,(pts/60)%60,pts%60,percentage_text);
4112 } else osd_text_tmp[0]=0; 4122 } else osd_text_tmp[0]=0;
4113 4123
4124 if (osd_level == 1 && osd_show_status > 0){
4125 strncpy(osd_text_tmp, "OSD: enabled", 63);
4126 strncpy(vo_osd_text, osd_text_tmp, 63);
4127 vo_osd_changed(OSDTYPE_OSD);
4128 osd_show_status--;
4129 }
4114 if(strcmp(vo_osd_text, osd_text_tmp)) { 4130 if(strcmp(vo_osd_text, osd_text_tmp)) {
4115 strncpy(vo_osd_text, osd_text_tmp, 63); 4131 strncpy(vo_osd_text, osd_text_tmp, 63);
4116 vo_osd_changed(OSDTYPE_OSD); 4132 vo_osd_changed(OSDTYPE_OSD);
4117 } 4133 }
4118 } else { 4134 } else {
4119 if(vo_osd_text) { 4135 if(vo_osd_text && osd_show_status <= 0) {
4120 vo_osd_text=NULL; 4136 vo_osd_text=NULL;
4121 vo_osd_changed(OSDTYPE_OSD); 4137 vo_osd_changed(OSDTYPE_OSD);
4122 } 4138 }
4123 } 4139 }
4124 // for(i=1;i<=11;i++) osd_text_buffer[10+i]=i;osd_text_buffer[10+i]=0; 4140 // for(i=1;i<=11;i++) osd_text_buffer[10+i]=i;osd_text_buffer[10+i]=0;
4125 // vo_osd_text=osd_text_buffer; 4141 // vo_osd_text=osd_text_buffer;