Exemple #1
0
void MidiPort::setMidiDevice(MidiDevice* dev)
{
    // close old device
    if (_device)
    {
        _device->setPort(-1);
        _device->close();
    }
    // set-up new device
    if (dev)
    {
        for (int i = 0; i < kMaxMidiPorts; ++i)
        {
            MidiPort* mp = &midiPorts[i];
            if (mp->device() == dev)
            {
                // move device
                _state = mp->state();
                mp->clearDevice();
                break;
            }
        }
        _device = dev;
        _state = _device->open();
        _device->setPort(portno());
    }
    else
        // dev is null, clear this device
        clearDevice();
}
/* private slots */
void DeviceStack::showDevice(QListWidgetItem *item)
{
    clearDevice();
    QString deviceType = item->data(Qt::UserRole).toString();
    //qDebug()<<item->text()<<deviceType;
    if ( deviceType == "disk" ) {
        device = new Disk(
                    this,
                    ptr_ConnPtr);
        connect(device, SIGNAL(errorMsg(QString&)),
                this, SIGNAL(errorMsg(QString&)));
    } else if ( deviceType == "interface" ) {
void paint() {
  static const int ox = 150;
  static const int oy = 150;

  static const int hl = 46;
  static const int ml = 74;
  static const int sl = 120;

  int i;

  beginPaint();

  clearDevice();

  // circle
  setPenWidth(2);
  setPenColor(BLACK);
  setBrushColor(WHITE);
  ellipse(25, 25, 275, 275);

  // label
  setPenWidth(1);
  setPenColor(BLACK);
  for (i = 0; i < 12; ++i) {
    moveTo(ox + 115 * sin(RAD(180 - i * 30)), oy + 115 * cos(RAD(180 - i * 30)));
    lineTo(ox + 125 * sin(RAD(180 - i * 30)), oy + 125 * cos(RAD(180 - i * 30)));
  }

  // hour
  setPenWidth(8);
  setPenColor(BLACK);
  moveTo(ox, oy);
  lineTo(ox + hl * sin(RAD(180 - h * 30)), oy + hl * cos(RAD(180 - h * 30)));

  // minute
  setPenWidth(4);
  setPenColor(GREEN);
  moveTo(ox, oy);
  lineTo(ox + ml * sin(RAD(180 - m * 6)), oy + ml * cos(RAD(180 - m * 6)));

  // second
  setPenWidth(2);
  setPenColor(RED);
  moveTo(ox, oy);
  lineTo(ox + sl * sin(RAD(180 - s * 6)), oy + sl * cos(RAD(180 - s * 6)));

  endPaint();
}
Exemple #4
0
void MidiPort::setMidiDevice(MidiDevice* dev)
{
    // close old device
	if (_device)
	{
        if (_device->isSynthPlugin())
		{
			_instrument = genericMidiInstrument;
		}
		_device->setPort(-1);
		_device->close();
	}
    // set-up new device
	if (dev)
	{
		for (int i = 0; i < MIDI_PORTS; ++i)
		{
			MidiPort* mp = &midiPorts[i];
			if (mp->device() == dev)
			{
                if (dev->isSynthPlugin())
					mp->setInstrument(genericMidiInstrument);
				// move device
				_state = mp->state();
				mp->clearDevice();
				break;
			}
		}
		_device = dev;
        if (_device->isSynthPlugin())
		{
            SynthPluginDevice* s = (SynthPluginDevice*) _device;
			_instrument = s;
            //_instrument = genericMidiInstrument;
		}
		_state = _device->open();
		_device->setPort(portno());
	}
	else
        // dev is null, clear this device
		clearDevice();
}
void Connection::close()
{
  closeClient();
  clearDevice();
}