Thread: [Redbutton-devel] SF.net SVN: redbutton: [31] redbutton-browser/trunk/ResidentProgramClass.c
Brought to you by:
skilvington
|
From: <ski...@us...> - 2006-03-27 09:18:25
|
Revision: 31 Author: skilvington Date: 2006-03-27 01:18:20 -0800 (Mon, 27 Mar 2006) ViewCVS: http://svn.sourceforge.net/redbutton/?rev=31&view=rev Log Message: ----------- display dates in local time not GMT Modified Paths: -------------- redbutton-browser/trunk/ResidentProgramClass.c Modified: redbutton-browser/trunk/ResidentProgramClass.c =================================================================== --- redbutton-browser/trunk/ResidentProgramClass.c 2006-03-26 13:45:10 UTC (rev 30) +++ redbutton-browser/trunk/ResidentProgramClass.c 2006-03-27 09:18:20 UTC (rev 31) @@ -450,7 +450,7 @@ /* convert to UNIX time */ unix_time = ((mheg_date - MHEG_EPOCH_OFFSET) * (24 * 60 * 60)) + mheg_time; /* let libc do all the hard work of working out the year etc */ - tm = gmtime(&unix_time); + tm = localtime(&unix_time); /* write it out */ dateString.size = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ski...@us...> - 2006-05-23 08:45:19
|
Revision: 79 Author: skilvington Date: 2006-05-23 01:45:14 -0700 (Tue, 23 May 2006) ViewCVS: http://svn.sourceforge.net/redbutton/?rev=79&view=rev Log Message: ----------- stop Random(0) causing a floating point error Modified Paths: -------------- redbutton-browser/trunk/ResidentProgramClass.c Modified: redbutton-browser/trunk/ResidentProgramClass.c =================================================================== --- redbutton-browser/trunk/ResidentProgramClass.c 2006-05-22 22:01:19 UTC (rev 78) +++ redbutton-browser/trunk/ResidentProgramClass.c 2006-05-23 08:45:14 UTC (rev 79) @@ -633,8 +633,11 @@ num = GenericInteger_getInteger(num_par, caller_gid); - /* man page says low order bits are random */ - rnd = 1 + (random() % num); + /* ITV like to get Random(0) */ + if(num == 0) + rnd = 0; + else /* man page says low order bits are random too */ + rnd = 1 + (random() % num); GenericInteger_setInteger(random_par, caller_gid, rnd); verbose("ResidentProgram: Random(%u, %u)", num, rnd); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ski...@us...> - 2006-05-23 08:47:16
|
Revision: 80 Author: skilvington Date: 2006-05-23 01:47:12 -0700 (Tue, 23 May 2006) ViewCVS: http://svn.sourceforge.net/redbutton/?rev=80&view=rev Log Message: ----------- Random(0) returns 1 Modified Paths: -------------- redbutton-browser/trunk/ResidentProgramClass.c Modified: redbutton-browser/trunk/ResidentProgramClass.c =================================================================== --- redbutton-browser/trunk/ResidentProgramClass.c 2006-05-23 08:45:14 UTC (rev 79) +++ redbutton-browser/trunk/ResidentProgramClass.c 2006-05-23 08:47:12 UTC (rev 80) @@ -633,9 +633,9 @@ num = GenericInteger_getInteger(num_par, caller_gid); - /* ITV like to get Random(0) */ + /* ITV like to get Random(0), returned value is supposed to be in the range 1..num */ if(num == 0) - rnd = 0; + rnd = 1; else /* man page says low order bits are random too */ rnd = 1 + (random() % num); GenericInteger_setInteger(random_par, caller_gid, rnd); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
|
From: <ski...@us...> - 2007-01-07 12:19:40
|
Revision: 166
http://svn.sourceforge.net/redbutton/?rev=166&view=rev
Author: skilvington
Date: 2007-01-07 04:19:37 -0800 (Sun, 07 Jan 2007)
Log Message:
-----------
fail searches outside the range of the string
Modified Paths:
--------------
redbutton-browser/trunk/ResidentProgramClass.c
Modified: redbutton-browser/trunk/ResidentProgramClass.c
===================================================================
--- redbutton-browser/trunk/ResidentProgramClass.c 2007-01-07 11:16:12 UTC (rev 165)
+++ redbutton-browser/trunk/ResidentProgramClass.c 2007-01-07 12:19:37 UTC (rev 166)
@@ -797,8 +797,8 @@
search_substring(OctetString *string, int start, OctetString *search)
{
/* range check */
- start = MAX(start, 1);
- start = MIN(start, string->size);
+ if(start < 1 || start > string->size)
+ return -1;
/* simple cases */
if(string->size == 0)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-01-22 17:12:03
|
Revision: 189
http://svn.sourceforge.net/redbutton/?rev=189&view=rev
Author: skilvington
Date: 2007-01-22 09:11:52 -0800 (Mon, 22 Jan 2007)
Log Message:
-----------
clamp search positions to the length of the string, rather than just returning a failed search
Modified Paths:
--------------
redbutton-browser/trunk/ResidentProgramClass.c
Modified: redbutton-browser/trunk/ResidentProgramClass.c
===================================================================
--- redbutton-browser/trunk/ResidentProgramClass.c 2007-01-22 16:49:24 UTC (rev 188)
+++ redbutton-browser/trunk/ResidentProgramClass.c 2007-01-22 17:11:52 UTC (rev 189)
@@ -796,9 +796,9 @@
int
search_substring(OctetString *string, int start, OctetString *search)
{
- /* range check */
+ /* assert */
if(start < 1 || start > string->size)
- return -1;
+ fatal("search_substring: start=%d string->size=%d", start, string->size);
/* simple cases */
if(string->size == 0)
@@ -847,6 +847,10 @@
startIndex = GenericInteger_getInteger(startIndex_par, caller_gid);
searchString = GenericOctetString_getOctetString(searchString_par, caller_gid);
+ /* range checks */
+ startIndex = MAX(startIndex, 1);
+ startIndex = MIN(startIndex, string->size);
+
stringPosition = search_substring(string, startIndex, searchString);
GenericInteger_setInteger(stringPosition_par, caller_gid, stringPosition);
@@ -892,6 +896,10 @@
startIndex = GenericInteger_getInteger(startIndex_par, caller_gid);
searchString = GenericOctetString_getOctetString(searchString_par, caller_gid);
+ /* range checks */
+ startIndex = MAX(startIndex, 1);
+ startIndex = MIN(startIndex, string->size);
+
if((search_pos = search_substring(string, startIndex, searchString)) != -1)
{
stringResult.size = search_pos - startIndex;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-04-03 13:10:48
|
Revision: 274
http://svn.sourceforge.net/redbutton/?rev=274&view=rev
Author: skilvington
Date: 2007-04-03 06:10:45 -0700 (Tue, 03 Apr 2007)
Log Message:
-----------
CheckContentRef resident programme
Modified Paths:
--------------
redbutton-browser/trunk/ResidentProgramClass.c
Modified: redbutton-browser/trunk/ResidentProgramClass.c
===================================================================
--- redbutton-browser/trunk/ResidentProgramClass.c 2007-04-03 11:18:09 UTC (rev 273)
+++ redbutton-browser/trunk/ResidentProgramClass.c 2007-04-03 13:10:45 UTC (rev 274)
@@ -1022,6 +1022,12 @@
bool
prog_CheckContentRef(LIST_OF(Parameter) *params, OctetString *caller_gid)
{
+ GenericContentReference *refToCheck_par;
+ GenericBoolean *refValid_par;
+ GenericContentReference *refChecked_par;
+ ContentReference *ref;
+ bool valid;
+
if(!check_parameters(params, 3, Parameter_new_generic_content_reference, /* in: ref-to-check */
Parameter_new_generic_boolean, /* out: ref-valid-var */
Parameter_new_generic_content_reference)) /* out: ref-checked-var */
@@ -1029,8 +1035,21 @@
error("ResidentProgram: CheckContentRef (CCR): wrong number or type of parameters");
return false;
}
-/* TODO */
-printf("TODO: program CCR CheckContentRef\n");
+
+ refToCheck_par = &(get_parameter(params, 1)->u.new_generic_content_reference);
+ refValid_par = &(get_parameter(params, 2)->u.new_generic_boolean);
+ refChecked_par = &(get_parameter(params, 3)->u.new_generic_content_reference);
+
+ ref = GenericContentReference_getContentReference(refToCheck_par, caller_gid);
+
+ valid = MHEGEngine_checkContentRef(ref);
+
+ /* output values */
+ GenericBoolean_setBoolean(refValid_par, caller_gid, valid);
+ GenericContentReference_setContentReference(refChecked_par, caller_gid, ref);
+
+ verbose("ResidentProgram: CheckContentRef(\"%.*s\", %s, \"%.*s\")", ref->size, ref->data, valid ? "true" : "false", ref->size, ref->data);
+
return true;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-01-23 08:38:03
|
Revision: 190
http://svn.sourceforge.net/redbutton/?rev=190&view=rev
Author: skilvington
Date: 2007-01-23 00:37:58 -0800 (Tue, 23 Jan 2007)
Log Message:
-----------
add an extra condition to the search assert
Modified Paths:
--------------
redbutton-browser/trunk/ResidentProgramClass.c
Modified: redbutton-browser/trunk/ResidentProgramClass.c
===================================================================
--- redbutton-browser/trunk/ResidentProgramClass.c 2007-01-22 17:11:52 UTC (rev 189)
+++ redbutton-browser/trunk/ResidentProgramClass.c 2007-01-23 08:37:58 UTC (rev 190)
@@ -797,7 +797,8 @@
search_substring(OctetString *string, int start, OctetString *search)
{
/* assert */
- if(start < 1 || start > string->size)
+ if(string->size != 0
+ && (start < 1 || start > string->size))
fatal("search_substring: start=%d string->size=%d", start, string->size);
/* simple cases */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-04-03 14:20:14
|
Revision: 277
http://svn.sourceforge.net/redbutton/?rev=277&view=rev
Author: skilvington
Date: 2007-04-03 07:20:12 -0700 (Tue, 03 Apr 2007)
Log Message:
-----------
service index is signed
Modified Paths:
--------------
redbutton-browser/trunk/ResidentProgramClass.c
Modified: redbutton-browser/trunk/ResidentProgramClass.c
===================================================================
--- redbutton-browser/trunk/ResidentProgramClass.c 2007-04-03 14:16:15 UTC (rev 276)
+++ redbutton-browser/trunk/ResidentProgramClass.c 2007-04-03 14:20:12 UTC (rev 277)
@@ -1031,7 +1031,7 @@
GenericInteger_setInteger(transportStreamId_par, caller_gid, transport_id);
GenericInteger_setInteger(serviceId_par, caller_gid, service_id);
- verbose("ResidentProgram: SI_GetBasicSI(%u, %u, %u, %u, %u)", si, network_id, network_id, transport_id, service_id);
+ verbose("ResidentProgram: SI_GetBasicSI(%d, %u, %u, %u, %u)", si, network_id, network_id, transport_id, service_id);
return true;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ski...@us...> - 2007-05-23 16:09:27
|
Revision: 313
http://svn.sourceforge.net/redbutton/?rev=313&view=rev
Author: skilvington
Date: 2007-05-23 09:09:25 -0700 (Wed, 23 May 2007)
Log Message:
-----------
GCD returns local time, FDa is passed local time
Modified Paths:
--------------
redbutton-browser/trunk/ResidentProgramClass.c
Modified: redbutton-browser/trunk/ResidentProgramClass.c
===================================================================
--- redbutton-browser/trunk/ResidentProgramClass.c 2007-05-23 12:12:49 UTC (rev 312)
+++ redbutton-browser/trunk/ResidentProgramClass.c 2007-05-23 16:09:25 UTC (rev 313)
@@ -369,7 +369,9 @@
GenericInteger *time_par;
unsigned int mheg_date;
unsigned int mheg_time;
- time_t now;
+ unsigned int unix_time;
+ struct timeval now;
+ struct timezone zone;
if(!check_parameters(params, 2, Parameter_new_generic_integer, /* out: date */
Parameter_new_generic_integer)) /* out: time */
@@ -381,14 +383,17 @@
date_par = &(get_parameter(params, 1)->u.new_generic_integer);
time_par = &(get_parameter(params, 2)->u.new_generic_integer);
+ /* need to return local time, so take timezone into account */
+ gettimeofday(&now, &zone);
+ unix_time = now.tv_sec - (zone.tz_minuteswest * 60);
+
/* number of days since 00:00:00 1/1/1970 */
- now = time(NULL);
- mheg_date = now / (60 * 60 * 24);
+ mheg_date = unix_time / (60 * 60 * 24);
/* number of days since 00:00:00 17/11/1858 */
mheg_date += MHEG_EPOCH_OFFSET;
/* number of seconds since 00:00:00 */
- mheg_time = now % (60 * 60 * 24);
+ mheg_time = unix_time % (60 * 60 * 24);
GenericInteger_setInteger(date_par, caller_gid, mheg_date);
GenericInteger_setInteger(time_par, caller_gid, mheg_time);
@@ -446,8 +451,12 @@
/* convert to UNIX time */
unix_time = ((mheg_date - MHEG_EPOCH_OFFSET) * (24 * 60 * 60)) + mheg_time;
- /* let libc do all the hard work of working out the year etc */
- tm = localtime(&unix_time);
+ /*
+ * let libc do all the hard work of working out the year etc
+ * we are passed a date/time as returned by GetCurrentDate, ie local time
+ * as GCD has already taken care of the timezone, use gmtime() not localtime() here
+ */
+ tm = gmtime(&unix_time);
/* write it out */
dateString.size = 0;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|