123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- using System;
- namespace TUIO
- {
- public class TuioTime {
-
- private long seconds = 0;
-
- private long micro_seconds = 0;
-
- private static long start_seconds = 0;
-
- private static long start_micro_seconds = 0;
-
- public TuioTime () {
- this.seconds = 0;
- this.micro_seconds = 0;
- }
-
- public TuioTime (long msec) {
- this.seconds = msec/1000;
- this.micro_seconds = 1000*(msec%1000);
- }
-
- public TuioTime (long sec, long usec) {
- this.seconds = sec;
- this.micro_seconds = usec;
- }
-
- public TuioTime (TuioTime ttime) {
- this.seconds = ttime.getSeconds();
- this.micro_seconds = ttime.getMicroseconds();
- }
-
- public static TuioTime operator + (TuioTime atime, long us) {
- long sec = atime.getSeconds() + us/1000000;
- long usec = atime.getMicroseconds() + us%1000000;
- return new TuioTime(sec,usec);
- }
-
- public static TuioTime operator + (TuioTime btime, TuioTime ttime) {
- long sec = btime.getSeconds() + ttime.getSeconds();
- long usec = btime.getMicroseconds() + ttime.getMicroseconds();
- sec += usec/1000000;
- usec = usec%1000000;
- return new TuioTime(sec,usec);
- }
-
- public static TuioTime operator - (TuioTime btime, long us) {
- long sec = btime.getSeconds() - us/1000000;
- long usec = btime.getMicroseconds() - us%1000000;
- if (usec<0) {
- usec += 1000000;
- sec--;
- }
- return new TuioTime(sec,usec);
- }
-
- public static TuioTime operator - (TuioTime btime, TuioTime ttime) {
- long sec = btime.getSeconds() - ttime.getSeconds();
- long usec = btime.getMicroseconds() - ttime.getMicroseconds();
- if (usec<0) {
- usec += 1000000;
- sec--;
- }
- return new TuioTime(sec,usec);
- }
-
- public bool Equals(TuioTime ttime) {
- if ((seconds==ttime.getSeconds()) && (micro_seconds==ttime.getMicroseconds())) return true;
- else return false;
- }
-
- public void reset() {
- seconds = 0;
- micro_seconds = 0;
- }
-
- public long getSeconds() {
- return seconds;
- }
-
- public long getMicroseconds() {
- return micro_seconds;
- }
-
- public long getTotalMilliseconds() {
- return seconds*1000+micro_seconds/1000;
- }
-
- public static void initSession() {
- TuioTime startTime = getSystemTime();
- start_seconds = startTime.getSeconds();
- start_micro_seconds = startTime.getMicroseconds();
- }
-
- public static TuioTime getSessionTime() {
- return getSystemTime()-getStartTime();
- }
-
- public static TuioTime getStartTime() {
- return new TuioTime(start_seconds,start_micro_seconds);
- }
-
- public static TuioTime getSystemTime() {
- long usec = DateTime.Now.Ticks/10;
- return new TuioTime(usec/1000000,usec%1000000);
- }
- }
- }
|