Changeset 137

Show
Ignore:
Timestamp:
01/27/08 21:56:57 (1 year ago)
Author:
Stuart Thiel
Message:

-Started fixing #120
--The applet gives and receives proper timecodes. Now we just have to make sure mediannotate always ensures the timecodes are proper, and deals with the world crapping out when things go wrong.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • MediAnnotate/trunk/src/org/mediannotate/app/MediAnnotater.java

    r132 r137  
    55import java.io.File; 
    66import java.net.URLDecoder; 
     7import java.text.DecimalFormat; 
     8import java.text.NumberFormat; 
    79import java.util.LinkedList; 
    810import java.util.List; 
     
    4143 
    4244        public static String getTime() { 
    43                 String timeXML = "<mediannotate>" + 
    44                   "  <start>" + myPlayerPanel.getInTime() + "</start>\n" + 
    45                   "  <end>" + myPlayerPanel.getOutTime() + "</end>\n</mediannotate>";            
     45                DecimalFormat d = new DecimalFormat("00"); 
     46                String start = d.format(myPlayerPanel.getInTime()/1000/60/60) + ":" + 
     47                d.format((myPlayerPanel.getInTime()%(1000*60*60))/1000/60) + ":" + 
     48                d.format((myPlayerPanel.getInTime()%(1000*60))/1000) + "." + 
     49                d.format((myPlayerPanel.getInTime()%1000)/33.3); 
     50                 
     51                String end = d.format(myPlayerPanel.getOutTime()/1000/60/60) + ":" + 
     52                d.format((myPlayerPanel.getOutTime()%(1000*60*60))/1000/60) + ":" + 
     53                d.format((myPlayerPanel.getOutTime()%(1000*60))/1000) + "." + 
     54                d.format((myPlayerPanel.getOutTime()%1000)/33.3);                
     55                String timeXML = "<start>" + start + "</start>\n" + 
     56                  "<end>" + end + "</end>";              
    4657                return timeXML; 
    4758        } 
     
    4960        public static void setTime(String time) { 
    5061                time = time.replace('\n', ' '); //dirty, but effective. Don't want linebreaks screwing this up 
    51                 long in = Long.parseLong(time.replaceAll("^.*<start>(.*)</start>.*$", "$1"));  
    52                 long out = Long.parseLong(time.replaceAll("^.*<end>(.*)</end>.*$", "$1")); 
     62                String inString = time.replaceAll("^.*<start>(.*)</start>.*$", "$1"); 
     63                String outString = time.replaceAll("^.*<end>(.*)</end>.*$", "$1"); 
     64                String[] inStrings = inString.split("[:\\.]"); 
     65                String[] outStrings = outString.split("[:\\.]"); 
     66                long in = 0; 
     67                in += Long.parseLong(inStrings[0])*60*60*1000; 
     68                in += Long.parseLong(inStrings[1])*60*1000; 
     69                in += Long.parseLong(inStrings[2])*1000; 
     70                in += Long.parseLong(inStrings[3])*33.3; 
     71                long out = 0; 
     72                out += Long.parseLong(outStrings[0])*60*60*1000; 
     73                out += Long.parseLong(outStrings[1])*60*1000; 
     74                out += Long.parseLong(outStrings[2])*1000; 
     75                out += Long.parseLong(outStrings[3])*33.3;               
    5376                myPlayerPanel.setInTime(in); 
    5477                myPlayerPanel.setOutTime(out);