changeset 23416:ae4237717601

Move the time printing code out of the length property.
author albeu
date Thu, 31 May 2007 12:42:02 +0000
parents 0f0803d6544a
children a829005cbcd5
files command.c m_property.c m_property.h
diffstat 3 files changed, 30 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/command.c	Thu May 31 12:37:37 2007 +0000
+++ b/command.c	Thu May 31 12:42:02 2007 +0000
@@ -283,28 +283,7 @@
 	!(int) (len = demuxer_get_time_length(mpctx->demuxer)))
 	return M_PROPERTY_UNAVAILABLE;
 
-    switch (action) {
-    case M_PROPERTY_PRINT:
-	if (!arg)
-	    return M_PROPERTY_ERROR;
-	else {
-	    int h, m, s = len;
-	    h = s / 3600;
-	    s -= h * 3600;
-	    m = s / 60;
-	    s -= m * 60;
-	    *(char **) arg = malloc(20);
-	    if (h > 0)
-		sprintf(*(char **) arg, "%d:%02d:%02d", h, m, s);
-	    else if (m > 0)
-		sprintf(*(char **) arg, "%d:%02d", m, s);
-	    else
-		sprintf(*(char **) arg, "%d", s);
-	    return M_PROPERTY_OK;
-	}
-	break;
-    }
-    return m_property_double_ro(prop, action, arg, len);
+    return m_property_time_ro(prop, action, arg, len);
 }
 
 /// Demuxer meta data
--- a/m_property.c	Thu May 31 12:37:37 2007 +0000
+++ b/m_property.c	Thu May 31 12:42:02 2007 +0000
@@ -318,6 +318,31 @@
     return M_PROPERTY_NOT_IMPLEMENTED;
 }
 
+int m_property_time_ro(m_option_t* prop,int action,
+                       void* arg,double var) {
+    switch(action) {
+    case M_PROPERTY_PRINT:
+	if (!arg)
+	    return M_PROPERTY_ERROR;
+	else {
+	    int h, m, s = var;
+	    h = s / 3600;
+	    s -= h * 3600;
+	    m = s / 60;
+	    s -= m * 60;
+	    *(char **) arg = malloc(20);
+	    if (h > 0)
+		sprintf(*(char **) arg, "%d:%02d:%02d", h, m, s);
+	    else if (m > 0)
+		sprintf(*(char **) arg, "%d:%02d", m, s);
+	    else
+		sprintf(*(char **) arg, "%d", s);
+	    return M_PROPERTY_OK;
+        }
+    }
+    return m_property_double_ro(prop,action,arg,var);
+}
+
 int m_property_string_ro(m_option_t* prop,int action,void* arg,char* str) {
     switch(action) {
     case M_PROPERTY_GET:
--- a/m_property.h	Thu May 31 12:37:37 2007 +0000
+++ b/m_property.h	Thu May 31 12:42:02 2007 +0000
@@ -185,6 +185,10 @@
 int m_property_double_ro(m_option_t* prop,int action,
                          void* arg,double var);
 
+/// Implement print
+int m_property_time_ro(m_option_t* prop,int action,
+                       void* arg,double var);
+
 /// get/print the string
 int m_property_string_ro(m_option_t* prop,int action,void* arg, char* str);