Esempio n. 1
0
def list_midi_devices():
    """
    Lists MIDI devices.

    @return: None
    """
    rtp_control = RTPControl()
    #FIXME: We should not need to instanciated all those session objects to simply list MIDI devices!
    # we give it dummy port numbers, just to enable sending and receiving.
    midi_session = rtp_control.add_session(
        MidiSession("127.0.0.1", rport=1, sport=1))
    midi_session = rtp_control.get_session(midi_session)
    dev_in, dev_out = midi_session.get_devices()
    print "List of MIDI devices:"
    print "    Input devices:"
    print "    --------------"
    for dev in dev_in:
        print "     * input  %2s %30s" % (dev[0], '"%s"' % (dev[1])),
        if dev[2] == 1:
            print "  [open]"
        else:
            print "  [closed]"
    print "    Output devices:"
    print "    ---------------"
    for dev in dev_out:
        print "     * output %2s %30s" % (dev[0], '"%s"' % (dev[1])),
        if dev[2] == 1:
            print "  [open]"
        else:
            print "  [closed]"
Esempio n. 2
0
def cleanup_everything():
    print "Shutting down midi stream module."
    # FIXME: what does it do, actually?
    return RTPControl().stop()
Esempio n. 3
0
         sys.exit(2)
 if config.receiving_port is None and config.sending_port is None:
     print "Error: You must choose either the sending or receiving mode."
     parser.print_usage()
     sys.exit(2)
 if config.sending_port is not None and config.receiving_port is not None:
     if config.sending_port != config.receiving_port:
         print "Error: receiving port and sending port must be equal if both specified."
         parser.print_usage()
         sys.exit(2)
 # start the app:
 midi_session_c = RTPControl().add_session(
     MidiSession(config.peer_address,
                 sport=config.sending_port,
                 rport=config.receiving_port,
                 latency=config.latency,
                 jitter_buffer_size=config.jitter_buffer,
                 safe_keyboard=config.safe_keyboard,
                 recovery=config.disable_recovery_journal,
                 follow_standard=config.follow_standard,
                 verbose=config.verbose))
 midi_session = RTPControl().get_session(midi_session_c)
 dev_in, dev_out = midi_session.get_devices(
 )  #FIXME: I think this might crash if we're either not sending or receiving, since it will return a 1-tuple
 if config.input_device is not None:
     res = midi_session.set_device_in(config.input_device)
     if not res:
         print("Could not start session with input device %s" %
               (config.input_device))
         sys.exit(2)
 if config.output_device is not None:
     res = midi_session.set_device_out(config.output_device)
Esempio n. 4
0
 def send_data(self, data, ts):
     #Selecting RTP session
     RTPControl().send_data_packet(self.cookie, data, ts)
Esempio n. 5
0
 def send_empty_packet(self, chunk=0):
     RTPControl().send_empty_packet(self.cookie, chunk)
Esempio n. 6
0
 def stop(self):
     """If override by daughters must call:
     """
     RTPControl().stop_session(self.cookie)