Mercurial > mplayer.hg
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; |