Ignore:
Timestamp:
2011-04-16T21:03:42+02:00 (14 years ago)
Author:
guardian
Message:

adding sync

Location:
applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping
Files:
6 edited

Legend:

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

    r25796 r25861  
    207207        if(fc.showOpenDialog(Main.main.parent)!=JFileChooser.CANCEL_OPTION)
    208208        {
    209 //              mostRecentFolder=fc.getSelectedFile().getAbsolutePath();
    210 //              saveProperties();
     209                mostRecentFolder=fc.getSelectedFile().getAbsolutePath();
     210                saveProperties();
    211211                VideoPositionLayer videoPositionLayer= new VideoPositionLayer(gpsLayer);
     212                GPSVideoPlayer gpsVideoPlayer = new GPSVideoPlayer(new SimpleDateFormat("hh:mm:ss") ,videoPositionLayer);
     213                gpsVideoPlayer.addVideo(fc.getSelectedFile());
    212214        }
    213215               
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/VideoPositionLayer.java

    r25796 r25861  
    138138        }
    139139       
    140         private WayPoint getWayPointBefore(Date GPSTime)
     140        public WayPoint getWayPointBefore(Date GPSTime)
    141141        {
    142142                assert GPSTime.after(getFirstWayPoint().getTime())==true;
     
    196196        if(p1.getCoor().lon()>p2.getCoor().lon()) return p1; else return p2;
    197197    }
     198   
     199    public Date getGPSDate()
     200    {
     201        return iconPosition.getTime();
     202    }
    198203
    199204        public void mouseReleased(MouseEvent e) {
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideo.java

    r25765 r25861  
    11package org.openstreetmap.josm.plugins.videomapping.video;
     2import java.awt.Canvas;
    23import java.io.File;
    34
     5import javax.swing.JComponent;
     6
    47// a specific synced video
    5 public class GPSVideo {
     8public class GPSVideo extends Video{
     9        public JComponent SyncComponent;
     10        public GPSVideo(File filename, Canvas canvas) {
     11                super(filename, canvas);
     12        }
    613   
    714
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/GPSVideoPlayer.java

    r25765 r25861  
    11package org.openstreetmap.josm.plugins.videomapping.video;
     2import java.awt.BorderLayout;
    23import java.awt.Color;
     4import java.awt.FlowLayout;
     5import java.awt.HeadlessException;
    36import java.awt.event.ActionEvent;
    47import java.awt.event.ActionListener;
     
    710import java.sql.Date;
    811import java.sql.Time;
     12import java.text.DateFormat;
     13import java.util.Iterator;
     14import java.util.LinkedList;
    915import java.util.List;
    1016import java.util.Timer;
     
    1319import javax.swing.JButton;
    1420import javax.swing.JCheckBoxMenuItem;
     21import javax.swing.JPanel;
    1522
    1623import org.openstreetmap.josm.Main;
     
    1825import org.openstreetmap.josm.plugins.videomapping.GpsPlayer;
    1926import org.openstreetmap.josm.plugins.videomapping.VideoObserver;
     27import org.openstreetmap.josm.plugins.videomapping.VideoPositionLayer;
     28
     29import static org.openstreetmap.josm.tools.I18n.*;
     30import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    2031
    2132//extends video playback, major control has the video player
    22 public class GPSVideoPlayer
     33public class GPSVideoPlayer extends VideoPlayer
    2334{
     35        private JPanel syncPanel;
     36        private List<GPSVideo> videos;
     37        private List<JButton> syncButtons;
     38        private VideoPositionLayer videoPositionLayer;
     39
     40        public GPSVideoPlayer(DateFormat videoTimeFormat,VideoPositionLayer videoPositionLayer) throws HeadlessException {
     41                super(videoTimeFormat);
     42                extendUI();
     43                syncButtons=new LinkedList<JButton>();
     44                this.videoPositionLayer=videoPositionLayer;
     45        }
     46
     47        @Override
     48        public GPSVideo addVideo(File Videofile) {
     49               
     50                GPSVideo video=(GPSVideo) super.addVideo(Videofile);
     51                videos.add(video);
     52                JButton syncButton= new JButton(tr("Sync"));
     53                syncButton.setBackground(Color.RED);
     54                syncPanel.add(syncButton);
     55                syncButton.addActionListener(new ActionListener() {
     56            //do a sync
     57            public void actionPerformed(ActionEvent e) {
     58                GPSVideo v=findVideo((JButton)e.getSource());
     59                doSync(v,videoPositionLayer);
     60            }
     61                });
     62                return video;
     63        }
     64
     65        protected void doSync(GPSVideo v, VideoPositionLayer layer) {
     66                WayPoint first=getFirstGPS(v.getTime(),layer.getGPSDate());
     67               
     68        }
     69
     70        //make sure we don't leave the GPS track
     71        private WayPoint getFirstGPS(long videoTime, java.util.Date gpsDate) {
     72                Date start=new Date(gpsDate.getTime()-videoTime);
     73                if(start.before(videoPositionLayer.getFirstWayPoint().getTime()))
     74                {
     75                        return videoPositionLayer.getFirstWayPoint();
     76                }
     77                else
     78                {
     79                        return videoPositionLayer.getWayPointBefore(start);
     80                }
     81        }
     82       
     83        //make sure we don't leave the GPS track
     84        private WayPoint getLastGPS(long videoTime, java.util.Date gpsDate) {
     85                Date end=new Date(gpsDate.getTime()-videoTime);
     86                if(end.after(videoPositionLayer.getLastWayPoint().getTime()))
     87                {
     88                        return videoPositionLayer.getLastWayPoint();
     89                }
     90                else
     91                {
     92                        return videoPositionLayer.getWayPointBefore(end);
     93                }
     94        }
     95
     96        protected GPSVideo findVideo(JButton source) {
     97                for (GPSVideo v : videos) {
     98                        if (v.SyncComponent==source) return v;
     99                }
     100                return null;
     101        }
     102
     103        private void extendUI() {
     104                syncPanel=new JPanel(new FlowLayout());
     105                screenPanel.add(syncPanel,BorderLayout.EAST);
     106                               
     107        }
     108       
     109       
     110       
    24111   
    25112   
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/Video.java

    r25765 r25861  
    1616        }
    1717       
     18        public long getTime()
     19        {
     20                return player.getTime();
     21        }
     22       
    1823
    1924}
  • applications/editors/josm/plugins/videomapping/src/org/openstreetmap/josm/plugins/videomapping/video/VideoPlayer.java

    r25765 r25861  
    6161public class VideoPlayer extends JFrame implements WindowListener, VideosObserver, VideoPlayerObserver{
    6262        private static final int notificationIntervall = 1000;
    63         private JPanel screenPanel,controlsPanel,canvasPanel;
     63        protected JPanel screenPanel,controlsPanel,canvasPanel;
    6464    private JSlider timeline;
    6565    private JButton play,back,forward;
     
    9494        }
    9595       
    96         public void addVideo(File Videofile)
     96        public Video addVideo(File Videofile)
    9797        {
    9898                Video video = new Video(Videofile,new Canvas());
     
    102102        pack();
    103103        startNotificationTimer();
     104        return video;
    104105        }
    105106
Note: See TracChangeset for help on using the changeset viewer.