[MPlayer-cvslog] CVS: main mplayer.c,1.889,1.890

Alban Bedel CVS syncmail at mplayerhq.hu
Mon Nov 28 00:29:36 CET 2005


CVS change done by Alban Bedel CVS

Update of /cvsroot/mplayer/main
In directory mail:/var2/tmp/cvs-serv13254

Modified Files:
	mplayer.c 
Log Message:
Add a function to remove osd msg and use it to remove the "OSD: enabled"
msg when switching the OSD to a level above 1.


Index: mplayer.c
===================================================================
RCS file: /cvsroot/mplayer/main/mplayer.c,v
retrieving revision 1.889
retrieving revision 1.890
diff -u -r1.889 -r1.890
--- mplayer.c	20 Nov 2005 23:44:46 -0000	1.889
+++ mplayer.c	27 Nov 2005 23:29:33 -0000	1.890
@@ -1104,6 +1104,29 @@
 }
 
 /**
+ *  \brief Remove a message from the OSD stack
+ * 
+ *  This function can be used to get rid of a message right away.
+ * 
+ */
+
+static void rm_osd_msg(int id) {
+    mp_osd_msg_t *msg,*last=NULL;
+    
+    // Search for the msg
+    for(msg = osd_msg_stack ; msg && msg->id != id ;
+	last = msg, msg = msg->prev);
+    if(!msg) return;
+
+    // Detach it from the stack and free it
+    if(last)
+        last->prev = msg->prev;
+    else
+        osd_msg_stack = msg->prev;
+    free(msg);
+}
+
+/**
  *  \brief Get the current message fron the OSD stack
  * 
  *  This function decrement the message timer and destroy the old ones.
@@ -3248,6 +3271,8 @@
 	if (v == -1 && osd_level <= 1)
 	  set_osd_msg(OSD_MSG_OSD_STATUS,0,osd_duration,
                       MSGTR_OSDosd, osd_level ? MSGTR_OSDenabled : MSGTR_OSDdisabled);
+	else
+	  rm_osd_msg(OSD_MSG_OSD_STATUS);
     } break;
     case MP_CMD_OSD_SHOW_TEXT :  {
       set_osd_msg(OSD_MSG_TEXT,1,osd_duration,"%64s",cmd->args[0].v.s);




More information about the MPlayer-cvslog mailing list