front_processing/extern/TUIO_JAVA/src/TuioDemo.java
author bastiena
Wed, 30 May 2012 10:21:36 +0200
changeset 35 4267d6d27a7d
parent 28 9ccef81f02ab
permissions -rw-r--r--
Front IDILL : Config file added dor the Front Random play at the beginning (when no user is detected) Pointers added Curves added (search and filter modes) Mosaic completion added (depletion to come later) State of the Front : just before the communication module creation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     1
/*
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     2
    TUIO Java Demo - part of the reacTIVision project
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     3
    http://reactivision.sourceforge.net/
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     4
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     5
    Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     6
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     7
    This program is free software; you can redistribute it and/or modify
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     8
    it under the terms of the GNU General Public License as published by
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
     9
    the Free Software Foundation; either version 2 of the License, or
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    10
    (at your option) any later version.
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    11
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    12
    This program is distributed in the hope that it will be useful,
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    13
    but WITHOUT ANY WARRANTY; without even the implied warranty of
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    14
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    15
    GNU General Public License for more details.
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    16
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    17
    You should have received a copy of the GNU General Public License
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    18
    along with this program; if not, write to the Free Software
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    19
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    20
*/
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    21
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    22
import java.awt.*;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    23
import java.awt.geom.*;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    24
import java.awt.event.*;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    25
import java.awt.image.*;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    26
import java.util.*;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    27
import javax.swing.*;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    28
import TUIO.*;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    29
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    30
public class TuioDemo  {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    31
    private final int window_width  = 640;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    32
    private final int window_height = 480;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    33
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    34
    private boolean fullscreen = false;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    35
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    36
    private TuioDemoComponent demo;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    37
    private JFrame frame;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    38
    private GraphicsDevice device;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    39
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    40
    public TuioDemo() {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    41
        demo = new TuioDemoComponent();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    42
        device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    43
        setupWindow();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    44
        showWindow();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    45
    }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    46
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    47
    public TuioListener getTuioListener() {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    48
        return demo;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    49
    }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    50
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    51
    public void setupWindow() {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    52
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    53
        frame = new JFrame();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    54
        frame.add(demo);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    55
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    56
        frame.setTitle("TuioDemo");
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    57
        frame.setResizable(false);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    58
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    59
        frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent evt) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    60
                System.exit(0);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    61
            } });
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    62
        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    63
        frame.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent evt) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    64
            if (evt.getKeyCode()==KeyEvent.VK_ESCAPE) System.exit(0);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    65
            else if (evt.getKeyCode()==KeyEvent.VK_F1) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    66
                destroyWindow();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    67
                setupWindow();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    68
                fullscreen = !fullscreen;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    69
                showWindow();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    70
            }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    71
            else if (evt.getKeyCode()==KeyEvent.VK_V) demo.verbose=!demo.verbose;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    72
        } });
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    73
    }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    74
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    75
    public void destroyWindow() {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    76
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    77
        frame.setVisible(false);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    78
        if (fullscreen) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    79
            device.setFullScreenWindow(null);        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    80
        }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    81
        frame = null;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    82
    }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    83
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    84
    public void showWindow() {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    85
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    86
        if (fullscreen) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    87
            int width  = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    88
            int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    89
            demo.setSize(width,height);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    90
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    91
            frame.setSize(width,height);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    92
            frame.setUndecorated(true);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    93
            device.setFullScreenWindow(frame);        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    94
        } else {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    95
            int width  = window_width;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    96
            int height = window_height;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    97
            demo.setSize(width,height);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    98
            
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
    99
            frame.pack();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   100
            Insets insets = frame.getInsets();            
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   101
            frame.setSize(width,height +insets.top);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   102
            
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   103
        }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   104
        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   105
        frame.setVisible(true);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   106
        frame.repaint();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   107
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   108
    }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   109
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   110
    public static void main(String argv[]) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   111
        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   112
        TuioDemo demo = new TuioDemo();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   113
        TuioClient client = null;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   114
 
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   115
        switch (argv.length) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   116
            case 1:
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   117
                try { 
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   118
                    client = new TuioClient( Integer.parseInt(argv[0])); 
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   119
                } catch (Exception e) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   120
                    System.out.println("usage: java TuioDemo [port]");
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   121
                    System.exit(0);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   122
                }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   123
                break;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   124
            case 0:
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   125
                client = new TuioClient(80);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   126
                break;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   127
            default: 
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   128
                System.out.println("usage: java TuioDemo [port]");
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   129
                System.exit(0);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   130
                break;
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   131
        }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   132
        
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   133
        if (client!=null) {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   134
            client.addTuioListener(demo.getTuioListener());
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   135
            client.connect();
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   136
        } else {
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   137
            System.out.println("usage: java TuioDemo [port]");
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   138
            System.exit(0);
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   139
        }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   140
    }
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   141
    
9ccef81f02ab Charset set to UTF-8 without bom
bastiena
parents: 10
diff changeset
   142
}