Ignore:
Timestamp:
2010-10-09T19:24:41+02:00 (14 years ago)
Author:
guardian
Message:

refactoring (less classes, moved/renamed methods)

Location:
applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping
Files:
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/GpsPlayer.java

    r23193 r23529  
    22
    33import java.awt.Point;
    4 import java.io.File;
    54import java.sql.Time;
    65import java.text.SimpleDateFormat;
     
    87import java.util.LinkedList;
    98import java.util.List;
    10 import java.util.ListIterator;
    11 import java.util.Timer;
    12 import java.util.TimerTask;
    13 
    149import org.openstreetmap.josm.Main;
    1510import org.openstreetmap.josm.data.gpx.WayPoint;
     
    2015    private WayPoint prev,curr,next;
    2116    private WayPoint start;
    22     private Timer t;
    23     private TimerTask ani; //for moving trough the list
    2417    private boolean autoCenter;
    2518   
     
    7972   
    8073    //select the given waypoint as center
    81     public void jump(WayPoint p)
     74    public void goTo(WayPoint p)
    8275    {
    8376        if(ls.contains(p))
     
    9891   
    9992    //walk k waypoints forward/backward
    100     public void jumpRel(int k)
     93    public void move(int k)
    10194    {
    10295
    10396        if ((ls.indexOf(curr)+k>0)&&(ls.indexOf(curr)<ls.size())) //check range
    10497        {
    105             jump(ls.get(ls.indexOf(curr)+k));
     98            goTo(ls.get(ls.indexOf(curr)+k));
    10699        }
    107100        Main.map.mapView.repaint(); //seperate modell and view logic...
     
    109102   
    110103    //select the k-th waypoint
    111     public void jump(int k)
     104    public void goTo(int k)
    112105    {
    113106        if (k>0)
     
    115108            if ((ls.indexOf(curr)+k>0)&&(ls.indexOf(curr)<ls.size())) //check range
    116109            {
    117                 jump(ls.get(k));
     110                goTo(ls.get(k));
    118111            }
    119112            Main.map.mapView.repaint();
     
    124117    public void jump(Time GPSAbsTime)
    125118    {
    126         jump(getWaypoint(GPSAbsTime.getTime()-start.getTime().getTime())); //TODO replace Time by Date?
    127     }
    128    
     119        goTo(getWaypoint(GPSAbsTime.getTime()-start.getTime().getTime())); //TODO replace Time by Date?
     120    }
     121   
     122    /*
    129123    //go to the position at
    130124    public void jump(Date GPSDate)
     
    137131        m=GPSDate.getMinutes()-start.getTime().getMinutes();
    138132        h=GPSDate.getHours()-start.getTime().getHours();
    139         diff=s*1000+m*60*1000+h*60*60*1000; //TODO ugly hack but nothing else works right
    140         jump(getWaypoint(diff));
    141     }
    142    
     133        diff=s*1000+m*60*1000+h*60*60*1000; //FIXME ugly hack but nothing else works right
     134        goTo(getWaypoint(diff));
     135    }
     136    */
    143137    //gets only points on the line of the GPS track (between waypoints) nearby the point m
    144138    private Point getInterpolated(Point m)
     
    202196        Point p;
    203197        Point leftP,rightP;
    204         Point c = Main.map.mapView.getPoint(getCurr().getEastNorth());
    205198        Point p1 = Main.map.mapView.getPoint(getCurr().getEastNorth());
    206199        Point p2 = getEndpoint();       
     
    220213    //gets further infos for a point between two Waypoints
    221214    public WayPoint getInterpolatedWaypoint(Point m)
    222     {   int a,b,length,lengthSeg;
     215    {   int length,lengthSeg;
    223216        long timeSeg;
    224217        float ratio;
    225         Time base;
    226218        Point p2;
    227219       
     
    272264    {
    273265        List<WayPoint> ls;
    274         Point p2;
    275266        float step;
    276         int length;
    277267       
    278268        step=100/(float)interval;
     
    332322    }
    333323
    334     //returns time in ms relatie to startpoint
     324    //returns time in ms relative to startpoint
    335325    public long getRelativeTime()
    336326    {
     
    338328    }
    339329   
     330    //returns time in ms relative to startpoint
    340331    public long getRelativeTime(WayPoint p)
    341332    {
     
    347338    public void jump(long relTime) {
    348339        int pos = Math.round(relTime/1000);//TODO ugly quick hack   
    349         jump(pos);
     340        goTo(pos);
    350341        //if (autoCenter) Main.map.mapView.
    351342    }
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/PositionLayer.java

    r23442 r23529  
    22
    33
    4 import java.sql.Time;
    5 import java.text.DateFormat;
    64import java.text.SimpleDateFormat;
    7 import java.util.ArrayList;
    8 import java.util.Collection;
    9 import java.util.Date;
    10 import java.util.HashSet;
    11 import java.util.Iterator;
     5import java.util.Collections;
    126import java.util.LinkedList;
    137import java.util.List;
    14 import java.util.ListIterator;
    15 import java.util.Set;
    16 import java.util.Timer;
    17 import java.util.TimerTask;
    18 
    198import java.awt.Color;
    20 import java.awt.Component;
    219import java.awt.Cursor;
    22 import java.awt.Dimension;
    2310import java.awt.Graphics2D;
    2411import java.awt.Point;
    2512import java.awt.Rectangle;
    26 import java.awt.event.ActionEvent;
    27 import java.awt.event.KeyEvent;
    28 import java.awt.event.KeyListener;
    2913import java.awt.event.MouseEvent;
    3014import java.awt.event.MouseListener;
    3115import java.awt.event.MouseMotionListener;
     16import java.io.File;
    3217
    3318import javax.swing.*;
     
    3621
    3722import org.openstreetmap.josm.Main;
    38 import org.openstreetmap.josm.actions.InfoAction;
    3923import org.openstreetmap.josm.data.Bounds;
    4024import org.openstreetmap.josm.data.gpx.GpxData;
     25import org.openstreetmap.josm.data.gpx.GpxTrack;
     26import org.openstreetmap.josm.data.gpx.GpxTrackSegment;
    4127import org.openstreetmap.josm.data.gpx.WayPoint;
    42 import org.openstreetmap.josm.data.osm.DataSet;
    43 import org.openstreetmap.josm.data.osm.Node;
    4428import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
    4529import org.openstreetmap.josm.gui.MapView;
    4630import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
    4731import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
     32import org.openstreetmap.josm.gui.layer.GpxLayer;
    4833import org.openstreetmap.josm.gui.layer.Layer;
    4934import org.openstreetmap.josm.plugins.videomapping.video.GPSVideoPlayer;
    50 import org.openstreetmap.josm.tools.ImageProvider;
    51 import org.openstreetmap.josm.tools.Shortcut;
    5235
    5336//Basic rendering and GPS layer interaction
    5437public class PositionLayer extends Layer implements MouseListener,MouseMotionListener {
    55     private static Set<PlayerObserver> observers = new HashSet<PlayerObserver>(); //we have to implement our own Observer pattern
    5638    private List<WayPoint> ls;
    57     public GpsPlayer player;
     39    public GpsPlayer gps;
    5840    private boolean dragIcon=false; //do we move the icon by hand?
    5941    private WayPoint iconPosition;
    6042    private Point mouse;
    6143    private ImageIcon icon;
    62     private SimpleDateFormat mins;
    63     private SimpleDateFormat ms;
    6444    private SimpleDateFormat gpsTimeCode;
    65     private GPSVideoPlayer gps;
    66        
    67     public PositionLayer(String name, final List<WayPoint> ls) {
    68         super(name);
    69         this.ls=ls;
    70         player= new GpsPlayer(ls);
     45    public GPSVideoPlayer gpsVP;
     46       
     47    public PositionLayer(File video, GpxLayer GpsLayer) {
     48        super(video.getName());
     49        ls=copyGPSLayer(GpsLayer.data); //TODO This might be outsourced to a seperated track
     50        gps= new GpsPlayer(ls);
    7151        icon = new ImageIcon("images/videomapping.png");
    72         mins = new SimpleDateFormat("hh:mm:ss:S");
    73         ms= new SimpleDateFormat("mm:ss");
    7452        gpsTimeCode= new SimpleDateFormat("hh:mm:ss");
    7553        Main.map.mapView.addMouseListener(this);
    7654        Main.map.mapView.addMouseMotionListener(this);                         
    77        
     55        gpsVP = new GPSVideoPlayer(video, gps);
     56    }
     57   
     58    //make a flat copy
     59    private List<WayPoint> copyGPSLayer(GpxData route)
     60    {
     61        ls = new LinkedList<WayPoint>();
     62        for (GpxTrack trk : route.tracks) {
     63            for (GpxTrackSegment segment : trk.getSegments()) {
     64                ls.addAll(segment.getWayPoints());
     65            }
     66        }
     67        Collections.sort(ls); //sort basing upon time
     68        return ls;
    7869    }
    7970
     
    8879        String temp;
    8980        String sep=System.getProperty("line.separator");
    90         temp=tr("{0} {1}% of GPS track",gps.getVideo().getName(),gps.getCoverage()*10+sep);
    91         temp=temp+gps.getNativePlayerInfos();
     81        temp=tr("{0} {1}% of GPS track",gpsVP.getVideo().getName(),gpsVP.getCoverage()*10+sep);
     82        temp=temp+gpsVP.getNativePlayerInfos();
    9283        return temp;
    9384    }
     
    149140        //draw current segment points
    150141        g.setColor(Color.YELLOW);
    151         if(player.getPrev()!=null)
    152         {
    153             p = Main.map.mapView.getPoint(player.getPrev().getEastNorth());
     142        if(gps.getPrev()!=null)
     143        {
     144            p = Main.map.mapView.getPoint(gps.getPrev().getEastNorth());
    154145            g.drawOval(p.x - 2, p.y - 2, 4, 4);
    155             Point p2 = Main.map.mapView.getPoint(player.getCurr().getEastNorth());
     146            Point p2 = Main.map.mapView.getPoint(gps.getCurr().getEastNorth());
    156147            g.drawLine(p.x, p.y, p2.x, p2.y);
    157148        }
    158         if(player.getNext()!=null)
    159         {
    160             p = Main.map.mapView.getPoint(player.getNext().getEastNorth());
     149        if(gps.getNext()!=null)
     150        {
     151            p = Main.map.mapView.getPoint(gps.getNext().getEastNorth());
    161152            g.drawOval(p.x - 2, p.y - 2, 4, 4);
    162             Point p2 = Main.map.mapView.getPoint(player.getCurr().getEastNorth());
     153            Point p2 = Main.map.mapView.getPoint(gps.getCurr().getEastNorth());
    163154            g.drawLine(p.x, p.y, p2.x, p2.y);
    164155        }
     
    166157        g.setColor(Color.CYAN);
    167158        g.setBackground(Color.CYAN);
    168         LinkedList<WayPoint> ipo=(LinkedList<WayPoint>) player.getInterpolatedLine(5);
     159        LinkedList<WayPoint> ipo=(LinkedList<WayPoint>) gps.getInterpolatedLine(5);
    169160        for (WayPoint wp : ipo) {
    170161            p=Main.map.mapView.getPoint(wp.getEastNorth());
     
    186177        else
    187178        {
    188             if (player.getCurr()!=null){
    189             p=Main.map.mapView.getPoint(player.getCurr().getEastNorth());
     179            if (gps.getCurr()!=null){
     180            p=Main.map.mapView.getPoint(gps.getCurr().getEastNorth());
    190181            icon.paintIcon(null, g, p.x-icon.getIconWidth()/2, p.y-icon.getIconHeight()/2);         
    191             g.drawString(gpsTimeCode.format(player.getCurr().getTime()),p.x-10,p.y-10);
     182            g.drawString(gpsTimeCode.format(gps.getCurr().getTime()),p.x-10,p.y-10);
    192183            }
    193184        }
     
    217208    private Rectangle getIconRect()
    218209    {
    219         Point p = Main.map.mapView.getPoint(player.getCurr().getEastNorth());
     210        Point p = Main.map.mapView.getPoint(gps.getCurr().getEastNorth());
    220211        return new Rectangle(p.x-icon.getIconWidth()/2,p.y-icon.getIconHeight()/2,icon.getIconWidth(),icon.getIconHeight());
    221212    }
     
    241232        if(e.getButton() == MouseEvent.BUTTON1) {
    242233            //is it on the cam icon?
    243             if (player.getCurr()!=null)
     234            if (gps.getCurr()!=null)
    244235            {
    245236                if (getIconRect().contains(e.getPoint()))
     
    267258                if(wp!=null)
    268259                {
    269                     player.jump(wp);
     260                    gps.goTo(wp);
    270261                    //jump if we know position
    271262                    if(wp.attr.containsKey("synced"))
    272263                    {                       
    273                         if(gps!=null) notifyObservers(player.getRelativeTime()); //call videoplayers to set right position
     264                        if(gpsVP!=null) gpsVP.jumpToGPSTime(gps.getRelativeTime()); //call videoplayers to set right position
    274265                    }
    275266                }
     
    286277            mouse=e.getPoint();
    287278            //restrict to GPS track
    288             iconPosition=player.getInterpolatedWaypoint(mouse);
     279            iconPosition=gps.getInterpolatedWaypoint(mouse);
    289280
    290281            Main.map.mapView.repaint();
     
    294285    //visualize drag&drop
    295286    public void mouseMoved(MouseEvent e) {     
    296         if (player.getCurr()!=null)
     287        if (gps.getCurr()!=null)
    297288        {                       
    298289            if (getIconRect().contains(e.getPoint()))
     
    308299    }
    309300
    310     public void setGPSPlayer(GPSVideoPlayer player) {
    311         this.gps = player;
    312        
    313     }
    314    
    315     public static void addObserver(PlayerObserver observer) {
    316 
    317         observers.add(observer);
    318 
    319     }
    320 
    321  
    322 
    323     public static void removeObserver(PlayerObserver observer) {
    324 
    325         observers.remove(observer);
    326 
    327     }
    328 
    329     private static void notifyObservers(long newTime) {
    330 
    331         for (PlayerObserver o : observers) {
    332 
    333             o.jumping(newTime); //TODO has to become just a single procedure?
    334 
    335         }
    336 
    337     }
     301        public  void setVideopPlayer(GPSVideoPlayer player) {
     302                gpsVP=player;
     303               
     304        }
     305       
     306        public GPSVideoPlayer getVideoPlayer()
     307        {
     308                return gpsVP;
     309        }
    338310}
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoMappingPlugin.java

    r23444 r23529  
    11package org.openstreetmap.josm.plugins.videomapping;
    22
    3 import java.awt.Component;
    43import java.awt.event.ActionEvent;
    54import java.awt.event.KeyEvent;
    6 import java.beans.PropertyChangeListener;
    7 import java.io.File;
    8 import java.sql.Time;
    95import java.text.ParseException;
    106import java.text.SimpleDateFormat;
    11 import java.util.Collections;
    127import java.util.Date;
    13 import java.util.LinkedList;
    14 import java.util.List;
    15 
    16 import javax.swing.Action;
    178import javax.swing.JCheckBoxMenuItem;
    189import javax.swing.JFileChooser;
     
    2516import org.openstreetmap.josm.plugins.*;
    2617import org.openstreetmap.josm.plugins.videomapping.video.GPSVideoPlayer;
    27 import org.openstreetmap.josm.tools.ImageProvider;
    2818import org.openstreetmap.josm.tools.Shortcut;
    2919import org.openstreetmap.josm.actions.JosmAction;
    30 import org.openstreetmap.josm.data.gpx.GpxData;
    31 import org.openstreetmap.josm.data.gpx.GpxTrack;
    32 import org.openstreetmap.josm.data.gpx.GpxTrackSegment;
    33 import org.openstreetmap.josm.data.gpx.WayPoint;
    34 import org.openstreetmap.josm.gui.MainMenu;
    35 import org.openstreetmap.josm.gui.MapFrame;
    3620import org.openstreetmap.josm.gui.MapView;
    3721import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
     
    5034public class VideoMappingPlugin extends Plugin implements LayerChangeListener{
    5135      private JMenu VMenu,VDeinterlacer;
    52       private GpxData GPSTrack;
    53       private List<WayPoint> ls;
     36      private GpxLayer GpsLayer;
    5437      private JosmAction VAdd,VRemove,VStart,Vbackward,Vforward,VJump,Vfaster,Vslower,Vloop;
    5538      private JRadioButtonMenuItem VIntBob,VIntNone,VIntLinear;
     
    8871        {
    8972            VAdd.setEnabled(true);
    90             GPSTrack=((GpxLayer) newLayer).data;           
     73            GpsLayer=((GpxLayer) newLayer);           
    9174            //TODO append to GPS Layer menu
    9275        }
     
    124107                    {
    125108                        saveSettings();
    126                         ls=copyGPSLayer(GPSTrack);
    127109                        enableControlMenus(true);
    128                         layer = new PositionLayer(fc.getSelectedFile().getName(),ls);
     110                        layer = new PositionLayer(fc.getSelectedFile(),GpsLayer);
    129111                        Main.main.addLayer(layer);
    130                         player = new GPSVideoPlayer(fc.getSelectedFile(), layer.player);
    131112                        //TODO Check here if we can sync allready now
    132                         layer.setGPSPlayer(player);
    133                         layer.addObserver(player);
    134113                        VAdd.setEnabled(false);
    135114                        VRemove.setEnabled(true);
    136                         player.setSubtitleAction(VSubTitles);
     115                        layer.getVideoPlayer().setSubtitleAction(VSubTitles);
    137116                    }
    138117                }
     
    161140            }
    162141        };
    163         Vbackward = new JosmAction(tr("Jump To"), "jumpto", tr("jumps to the entered gps time"),null, false) {         
     142        VJump= new JosmAction(tr("Jump To"), "jumpto", tr("jumps to the entered gps time"),null, false) {         
    164143            public void actionPerformed(ActionEvent e) {
    165144                String s =JOptionPane.showInputDialog(tr("please enter GPS timecode"),"10:07:57");
     
    291270        VMenu.add(Vslower);
    292271        VMenu.add(Vloop);
     272        VMenu.add(VJump);
    293273        VMenu.addSeparator();
    294274        VMenu.add(VCenterIcon);
     
    351331    }
    352332   
    353     //make a flat copy
    354     private List<WayPoint> copyGPSLayer(GpxData route)
    355     {
    356         ls = new LinkedList<WayPoint>();
    357         for (GpxTrack trk : route.tracks) {
    358             for (GpxTrackSegment segment : trk.getSegments()) {
    359                 ls.addAll(segment.getWayPoints());
    360             }
    361         }
    362         Collections.sort(ls); //sort basing upon time
    363         return ls;
    364     }
     333   
    365334  }
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoObserver.java

    r23517 r23529  
    22
    33//an Interface for communication for both players
    4 public interface PlayerObserver {
     4public interface VideoObserver {
    55    void playing(long time);
    66    void jumping(long time);
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java

    r23193 r23529  
    11package org.openstreetmap.josm.plugins.videomapping.video;
    22import java.awt.Color;
    3 import java.awt.Component;
    43import java.awt.event.ActionEvent;
    54import java.awt.event.ActionListener;
    65import java.io.File;
    76import java.sql.Time;
    8 import java.util.Date;
    97import java.util.List;
    108import java.util.Timer;
    119import java.util.TimerTask;
    1210
    13 import javax.swing.Action;
    1411import javax.swing.JButton;
    1512import javax.swing.JCheckBoxMenuItem;
    1613
    17 import org.openstreetmap.josm.Main;
    1814import org.openstreetmap.josm.data.gpx.WayPoint;
    1915import org.openstreetmap.josm.plugins.videomapping.GpsPlayer;
    20 import org.openstreetmap.josm.plugins.videomapping.PlayerObserver;
     16import org.openstreetmap.josm.plugins.videomapping.VideoObserver;
    2117
    2218//combines video and GPS playback, major control has the video player
    23 public class GPSVideoPlayer implements PlayerObserver{
     19public class GPSVideoPlayer
     20{
    2421    Timer t;
    25     TimerTask updateGPSTrack;
     22    TimerTask updateGPS; //sync GPS position here
    2623    private GpsPlayer gps;
    2724    private SimpleVideoPlayer video;
     
    6057        video.addComponent(syncBtn);
    6158        //a observer to communicate
    62         SimpleVideoPlayer.addObserver(new PlayerObserver() { //TODO has o become this
     59        SimpleVideoPlayer.addObserver(new VideoObserver() { //TODO has o become this
    6360
    6461            public void playing(long time) {
     
    147144    }
    148145   
    149     //jumps in video to the corresponding linked time
    150     public void jumpToGPSTime(Time GPSTime)
    151     {
    152         gps.jump(GPSTime);
    153     }
    154    
    155     //jumps in video to the corresponding linked time
     146   
     147    //jumps in video to the corresponding Video time (external triggered)
    156148    public void jumpToGPSTime(long gpsT)
    157149    {
    158         if(!synced)
     150       /* if(!synced)
    159151        {
    160152            //when not synced we can just move the icon to the right position           
    161153            gps.jump(new Date(gpsT));
    162154            Main.map.mapView.repaint();
    163         }
     155        }*/
    164156        video.jump(getVideoTime(gpsT));
    165157    }
     
    238230    }
    239231
    240     //when we clicked on the layer, here we update the video position
    241     public void jumping(long time) {
    242         if(synced) jumpToGPSTime(gps.getRelativeTime());
    243        
    244     }
    245 
     232   
    246233    public String getNativePlayerInfos() {
    247234        return video.getNativePlayerInfos();
     
    258245    }
    259246
    260     public void playing(long time) {
    261         // TODO Auto-generated method stub
    262        
    263     }
    264247
    265248    public void toggleSubtitles() {
     
    277260    }
    278261
    279     public void metadata(long time, boolean subtitles) {
    280         // TODO Auto-generated method stub
    281        
    282     }
    283262
    284263   
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/SimpleVideoPlayer.java

    r23193 r23529  
    1616import java.util.Date;
    1717import java.util.HashSet;
    18 import java.util.Hashtable;
     18import java.util.Hashtable ;
    1919import java.util.Set;
    2020import java.util.Timer;
     
    3232import javax.swing.JSlider;
    3333import javax.swing.JToggleButton;
     34import javax.swing.SwingUtilities;
    3435import javax.swing.event.ChangeEvent;
    3536import javax.swing.event.ChangeListener;
    3637
    3738import org.openstreetmap.josm.Main;
    38 import org.openstreetmap.josm.plugins.videomapping.PlayerObserver;
     39import org.openstreetmap.josm.plugins.videomapping.VideoObserver;
    3940import static org.openstreetmap.josm.tools.I18n.*;
    4041
     
    6465    private int jumpLength=1000;
    6566    private int  loopLength=6000;
    66     private static Set<PlayerObserver> observers = new HashSet<PlayerObserver>(); //we have to implement our own Observer pattern
     67    private static Set<VideoObserver> observers = new HashSet<VideoObserver>(); //we have to implement our own Observer pattern
    6768   
    6869    public SimpleVideoPlayer() {
     
    101102            //create updater
    102103            ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
    103             executorService.scheduleAtFixedRate(new Syncer(this), 0L, 1000L, TimeUnit.MILLISECONDS);
     104            executorService.scheduleAtFixedRate(new Runnable() {
     105                                //We have to do syncing in the main thread
     106                                public void run() {
     107                                        SwingUtilities.invokeLater(new Runnable() {
     108                                          //here we update
     109                                        public void run() {
     110                                            if (isPlaying()) updateTime(); //if the video is seeking we get a mess
     111                                        }
     112                                      });
     113                                }
     114                        }, 0L, 1000L, TimeUnit.MILLISECONDS);
    104115            //setDefaultCloseOperation(EXIT_ON_CLOSE);
    105116            addWindowListener(this);
     
    134145        speed.setPaintTicks(true);         
    135146        speed.setOrientation(Adjustable.VERTICAL);
    136         Hashtable labelTable = new Hashtable();
     147        Hashtable labelTable = new Hashtable ();
    137148        labelTable.put( new Integer( 0 ), new JLabel("1x") );
    138149        labelTable.put( new Integer( -200 ), new JLabel("-2x") );
     
    244255        pack();
    245256        //send out metadatas to all observers
    246         for (PlayerObserver o : observers) {
     257        for (VideoObserver o : observers) {
    247258            o.metadata(0, hasSubtitles());
    248259        }
     
    422433    }
    423434
    424     public static void addObserver(PlayerObserver observer) {
     435    public static void addObserver(VideoObserver observer) {
    425436
    426437            observers.add(observer);
     
    430441     
    431442
    432         public static void removeObserver(PlayerObserver observer) {
     443        public static void removeObserver(VideoObserver observer) {
    433444
    434445            observers.remove(observer);
     
    438449        private static void notifyObservers(long newTime) {
    439450
    440             for (PlayerObserver o : observers) {
     451            for (VideoObserver o : observers) {
    441452                o.playing(newTime);
    442453            }
Note: See TracChangeset for help on using the changeset viewer.