OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [examples/] [gnu/] [classpath/] [examples/] [midi/] [Demo.java] - Rev 781

Compare with Previous | Blame | View Log

/* Demo.java -- And example of MIDI support
   Copyright (C) 2005 Free Software Foundation, Inc.
 
This file is part of GNU Classpath examples.
 
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
 
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING.  If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA. */
 
package gnu.classpath.examples.midi;
 
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.sound.midi.*;
 
/**
 * An example how javax.sound.midi facilities work.
 */
public class Demo extends Frame implements ItemListener
{
  Choice midiInChoice = new Choice();
  Choice midiOutChoice = new Choice();
 
  MidiDevice inDevice = null;
  MidiDevice outDevice = null;
 
  ArrayList inDevices = new ArrayList();
  ArrayList outDevices = new ArrayList();
 
  public Demo () throws Exception
  {
    MenuBar mb = new MenuBar ();
    Menu menu = new Menu ("File");
    MenuItem quit = new MenuItem("Quit", new MenuShortcut('Q'));
    quit.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          System.exit(0);
        }
      });
    menu.add (quit);
    mb.add(menu);
 
    setTitle("synthcity: the GNU Classpath MIDI Demo");
    setLayout(new FlowLayout());
 
    MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();
 
    for (int i = 0; i < infos.length; i++)
      {
        MidiDevice device = MidiSystem.getMidiDevice(infos[i]);
        if (device.getMaxReceivers() > 0)
          {
            midiOutChoice.addItem(infos[i].getDescription());
            outDevices.add(device);
          }
        if (device.getMaxTransmitters() > 0)
          {
            midiInChoice.addItem(infos[i].getDescription());
            inDevices.add(device);
          }
      }
 
    setMenuBar (mb);
    add(new Label("MIDI IN: "));
    add(midiInChoice);
    add(new Label("   MIDI OUT: "));
    add(midiOutChoice);
 
    midiInChoice.addItemListener(this);
    midiOutChoice.addItemListener(this);
 
    pack();
    show();
  }
 
  public void itemStateChanged (ItemEvent e)
  {
    try
      {
        if (e.getItemSelectable() == midiInChoice)
          {
            if (inDevice != null)
              inDevice.close();
            inDevice =  (MidiDevice)
              inDevices.get(midiInChoice.getSelectedIndex());
          }
 
        if (e.getItemSelectable() == midiOutChoice)
          {
            if (outDevice != null)
              outDevice.close();
            outDevice = (MidiDevice)
              outDevices.get(midiOutChoice.getSelectedIndex());
          }
 
        if (inDevice != null && outDevice != null)
          {
            if (! inDevice.isOpen())
              inDevice.open();
            if (! outDevice.isOpen())
              outDevice.open();
            Transmitter t = inDevice.getTransmitter();
            if (t == null)
              System.err.println (inDevice + ".getTransmitter() == null");
            Receiver r = outDevice.getReceiver();
            if (r == null)
              System.err.println (outDevice + ".getReceiver() == null");
 
            if (t != null && r != null)
              t.setReceiver (r);
          }
      }
    catch (Exception ex)
      {
        ex.printStackTrace();
      }
  }
 
  public static void main (String args[]) throws Exception
    {
      new Demo();
    }
}
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.