summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--command.c8
-rw-r--r--mp_osd.h1
-rw-r--r--mplayer.c27
3 files changed, 26 insertions, 10 deletions
diff --git a/command.c b/command.c
index 4e06611698..6bc5ad7a0f 100644
--- a/command.c
+++ b/command.c
@@ -2297,12 +2297,12 @@ static int show_property_osd(MPContext *mpctx, const char *pname)
else if (p->osd_progbar) {
if (prop->type == CONF_TYPE_INT) {
if (mp_property_do(pname, M_PROPERTY_GET, &r, mpctx) > 0)
- set_osd_bar(mpctx, p->osd_progbar, p->osd_msg,
+ set_osd_bar(mpctx, p->osd_progbar, mp_gtext(p->osd_msg),
prop->min, prop->max, r);
} else if (prop->type == CONF_TYPE_FLOAT) {
float f;
if (mp_property_do(pname, M_PROPERTY_GET, &f, mpctx) > 0)
- set_osd_bar(mpctx, p->osd_progbar, p->osd_msg,
+ set_osd_bar(mpctx, p->osd_progbar, mp_gtext(p->osd_msg),
prop->min, prop->max, f);
} else {
mp_msg(MSGT_CPLAYER, MSGL_ERR,
@@ -2316,8 +2316,8 @@ static int show_property_osd(MPContext *mpctx, const char *pname)
char *val = mp_property_print(pname, mpctx);
if (val) {
int index = p - property_osd_display;
- set_osd_msg(p->osd_id >= 0 ? p->osd_id : OSD_MSG_PROPERTY + index,
- 1, opts->osd_duration, p->osd_msg, val);
+ set_osd_tmsg(p->osd_id >= 0 ? p->osd_id : OSD_MSG_PROPERTY + index,
+ 1, opts->osd_duration, p->osd_msg, val);
free(val);
}
}
diff --git a/mp_osd.h b/mp_osd.h
index 77eaacd7d2..e80dadb8c2 100644
--- a/mp_osd.h
+++ b/mp_osd.h
@@ -23,6 +23,7 @@ struct MPContext;
void set_osd_bar(struct MPContext *mpctx, int type,const char* name,double min,double max,double val);
void set_osd_msg(int id, int level, int time, const char* fmt, ...);
+void set_osd_tmsg(int id, int level, int time, const char* fmt, ...);
void rm_osd_msg(int id);
#endif /* MPLAYER_MP_OSD_H */
diff --git a/mplayer.c b/mplayer.c
index ac97aed389..2668bd07f0 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -1356,10 +1356,10 @@ static mp_osd_msg_t* osd_msg_stack = NULL;
* it is pulled on top of the stack, otherwise a new message is created.
*
*/
-
-void set_osd_msg(int id, int level, int time, const char* fmt, ...) {
+static void set_osd_msg_va(int id, int level, int time, const char *fmt,
+ va_list ap)
+{
mp_osd_msg_t *msg,*last=NULL;
- va_list va;
int r;
// look if the id is already in the stack
@@ -1376,9 +1376,7 @@ void set_osd_msg(int id, int level, int time, const char* fmt, ...) {
osd_msg_stack = msg;
}
// write the msg
- va_start(va,fmt);
- r = vsnprintf(msg->msg, 128, fmt, va);
- va_end(va);
+ r = vsnprintf(msg->msg, 128, fmt, ap);
if(r >= 128) msg->msg[127] = 0;
// set id and time
msg->id = id;
@@ -1387,6 +1385,23 @@ void set_osd_msg(int id, int level, int time, const char* fmt, ...) {
}
+void set_osd_msg(int id, int level, int time, const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ set_osd_msg_va(id, level, time, fmt, ap);
+ va_end(ap);
+}
+
+void set_osd_tmsg(int id, int level, int time, const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ set_osd_msg_va(id, level, time, mp_gtext(fmt), ap);
+ va_end(ap);
+}
+
+
/**
* \brief Remove a message from the OSD stack
*