]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
intextra: support 12bit unsigned nrs
authorLuis Alves <ljalvs@gmail.com>
Sun, 28 Oct 2018 23:19:45 +0000 (23:19 +0000)
committerJaroslav Kysela <perex@perex.cz>
Mon, 29 Oct 2018 09:34:58 +0000 (10:34 +0100)
src/prop.c
src/prop.h

index b769f9d17c16577456cd6f84e6831b04844ec213..57612c742b19046836ab036c700cac6cdb9d0eac 100644 (file)
@@ -544,9 +544,14 @@ prop_serialize_value
     if (INTEXTRA_IS_SPLIT(pl->intextra)) {
       htsmsg_add_u32(m, "intsplit", pl->intextra);
     } else {
-      htsmsg_add_s32(m, "intmax", INTEXTRA_GET_MAX(pl->intextra));
-      htsmsg_add_s32(m, "intmin", INTEXTRA_GET_MIN(pl->intextra));
-      htsmsg_add_s32(m, "intstep", INTEXTRA_GET_STEP(pl->intextra));
+      if (pl->type == PT_U32) {
+        htsmsg_add_u32(m, "intmax", INTEXTRA_GET_UMAX(pl->intextra));
+        htsmsg_add_u32(m, "intmin", INTEXTRA_GET_UMIN(pl->intextra));
+      } else {
+        htsmsg_add_s32(m, "intmax", INTEXTRA_GET_MAX(pl->intextra));
+        htsmsg_add_s32(m, "intmin", INTEXTRA_GET_MIN(pl->intextra));
+      }
+      htsmsg_add_u32(m, "intstep", INTEXTRA_GET_STEP(pl->intextra));
     }
   }
 
index 38a216af7ce609a700f7d673d97f4b03b6664e30..d5610035403039ac0440175f46755992eaffd22a 100644 (file)
@@ -79,6 +79,8 @@ typedef enum {
 #define INTEXTRA_GET_STEP(e) (((e)>>24)&0x7f)
 #define INTEXTRA_GET_MAX(e)  ((e)&(1<<23)?-(0x800-(((e)>>12)&0x7ff)):(((e)>>12)&0x7ff))
 #define INTEXTRA_GET_MIN(e)  ((e)&(1<<11)?-(0x800-((e)&0x7ff)):((e)&0x7ff))
+#define INTEXTRA_GET_UMAX(e) (((e)>>12)&0xfff)
+#define INTEXTRA_GET_UMIN(e) ((e)&0xfff)
 
 /*
  * Property definition