Exemplo n.º 1
0
void QHiMDDetection::clearDeviceList()
{
    QMDDevice * mddev;
    QNetMDDevice * nmddev;
    int i = 0;

    while( i < dlist.count() )
    {
        mddev = dlist.at(i);
        if(mddev->deviceType() == NETMD_DEVICE)
        {
            nmddev = static_cast<QNetMDDevice *>(mddev);
            if(nmddev->isOpen())
                nmddev->close();
            delete nmddev;
            nmddev = NULL;
            dlist.removeAt(i);
            continue;
        }
        else if(mddev->deviceType() == HIMD_DEVICE)
        {
            remove_himddevice(mddev->path());  // uses platform dependent function if available
            continue;
        }
    }

    if(!dlist.isEmpty())
        dlist.clear();
    emit deviceListChanged(dlist);
}
Exemplo n.º 2
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::removePlugin(Plugin* plugin)
{
  ASSERT(plugin != NULL);
  m_pluginList.remove(plugin);

  emit deviceListChanged();
}
void QHiMDWinDetection::remove_himddevice(QString path)
{
    int index = -1;
    QHiMDDevice * dev = static_cast<QHiMDDevice *>(find_by_path(path));

    if (!dev)
        return;

    index = dlist.indexOf(dev);

    if(dev->isOpen())
        dev->close();

    if(dev->name() != "disc image")
    {
        if(dev->MdChange() != NULL)
            unregister_mediaChange((HDEVNOTIFY)dev->MdChange());
        if(dev->deviceHandle() != NULL)
             CloseHandle(dev->deviceHandle());
     }

    delete dev;
    dev = NULL;

    dlist.removeAt(index);

    emit deviceListChanged(dlist);
}
Exemplo n.º 4
0
void QHiMDDetection::rescan_netmd_devices()
{
    QNetMDDevice * dev;
    int i = 0;

    // find and remove netmd devices
    while(i < dlist.count())
    {
        if(dlist.at(i)->deviceType() != NETMD_DEVICE)
        {
            i++;
            continue;
        }
        dev = static_cast<QNetMDDevice *>(dlist.at(i));
        if(dev->isOpen())
            dev->close();

        delete dev;
        dev = NULL;
        dlist.removeAt(i);
    }

    netmd_clean(&dev_list);
    dev_list = NULL;

    emit deviceListChanged(dlist);
    scan_for_netmd_devices();
}
Exemplo n.º 5
0
Arquivo: doc.cpp Projeto: speakman/qlc
bool Doc::removeDevice(DMXDevice* device)
{
  DMXDevice* dev = NULL;
  bool ok = false;
  int id = -1;

  ASSERT(device != NULL);

  for (dev = m_deviceList.first(); dev != NULL; dev = m_deviceList.next())
    {
      if (dev->id() == device->id())
	{
	  ok = m_deviceList.removeRef(dev);
	  id = dev->id();
	  delete dev;
	  break;
	}
    }

  setModified(true);

  emit deviceListChanged();

  return ok;
}
Exemplo n.º 6
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::addPlugin(Plugin* plugin)
{
  ASSERT(plugin != NULL);
  m_pluginList.append(plugin);

  emit deviceListChanged();
}
Exemplo n.º 7
0
bool QHiMDMainWindow::autodetect_init()
{
    if(!QObject::connect(detect, SIGNAL(deviceListChanged(QMDDevicePtrList)), this, SLOT(device_list_changed(QMDDevicePtrList))))
        return false;

    detect->scan_for_minidisc_devices();
    return true;
}
Exemplo n.º 8
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::addInputDevice(Joystick* j)
{
  if (searchInputDevice(j->fdName()) == NULL)
    {
      m_inputDeviceList.append(j);
      emit deviceListChanged();
    }
}
Exemplo n.º 9
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::addBus(Bus* bus)
{
  ASSERT(bus != NULL);
  m_busList.append(bus);
  emit deviceListChanged();

  setModified(true);
}
Exemplo n.º 10
0
//---------------------------------------------------------------------------
void
OpenCLData::setDeviceList(const QStringList &list)
{
  if(list != m_deviceList)
  {
    m_deviceList = list;
    emit deviceListChanged();
  }
}
Exemplo n.º 11
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::addDevice(DMXDevice* device)
{
  ASSERT(device != NULL);
  
  m_deviceList.append(device);

  setModified(true);

  emit deviceListChanged();
}
Exemplo n.º 12
0
void QHiMDDetection::scan_for_minidisc_devices()
{
    /* create device entry for disc images first */
    QHiMDDevice * mddev = new QHiMDDevice();
    mddev->setMdInserted(true);
    mddev->setName("disc image");
    dlist.append(mddev);
    emit deviceListChanged(dlist);

    scan_for_himd_devices();
    scan_for_netmd_devices();
}
Exemplo n.º 13
0
void QHiMDWinDetection::add_himddevice(QString path, QString name)
{
    if (find_by_path(path))
        return;

    QHiMDDevice * new_device = new QHiMDDevice();
    int k;
    char drv[] = "\\\\.\\X:";
    QByteArray device = "\\\\.\\PHYSICALDRIVE";
    char file[] = "X:\\HI-MD.IND";
    DWORD retbytes;
    HANDLE hdev, dev;
    STORAGE_DEVICE_NUMBER sdn;
    OFSTRUCT OFfile;

    drv[4] = path.at(0).toLatin1();

    hdev = CreateFileA(drv, NULL , FILE_SHARE_READ, NULL,
                                           OPEN_EXISTING, 0, NULL);
    if(hdev == INVALID_HANDLE_VALUE)
        return;

    k = DeviceIoControl(hdev, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &sdn, sizeof(sdn), &retbytes, NULL);
    CloseHandle(hdev);
    if(k != 0)
        device.append(QString::number(sdn.DeviceNumber));

    dev = CreateFileA(device.data(), NULL , FILE_SHARE_READ, NULL,
                                           OPEN_EXISTING, 0, NULL);
    if(dev == INVALID_HANDLE_VALUE)
        return;

    new_device->setDeviceHandle(dev);
    new_device->registerMdChange(register_mediaChange(new_device->deviceHandle()));
    new_device->setBusy(false);
    new_device->setPath(path);
    new_device->setName(name);

    file[0] = path.at(0).toLatin1();
    if(OpenFile(file, &OFfile, OF_EXIST) != HFILE_ERROR)
        new_device->setMdInserted(true);
    else
        new_device->setMdInserted(false);

    dlist.append(new_device);
    emit deviceListChanged(dlist);

    return;
}
Exemplo n.º 14
0
Arquivo: app.cpp Projeto: speakman/qlc
//
// Device manager
//
void App::initDeviceManagerView()
{
  if (m_dmView)
    {
      delete m_dmView;
    }

  // Create device manager view
  m_dmView = new DeviceManagerView(workspace());
  m_dmView->initView();

  connect(m_dmView, SIGNAL(closed()), 
  	  this, SLOT(slotDeviceManagerViewClosed()));

  connect(m_doc, SIGNAL(deviceListChanged()),
  	  m_dmView, SLOT(slotUpdate()));
}
Exemplo n.º 15
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::removeBus(unsigned int id, bool deleteBus)
{
  Bus* bus = NULL;
  
  bus = searchBus(id);

  ASSERT(bus);

  m_busList.remove(bus);

  if (deleteBus == true)
    {
      delete bus;
    }

  emit deviceListChanged();
}
Exemplo n.º 16
0
void HMI_Client::onDataReceived()
{
    QByteArray rxData = socket->readAll();
    Packet packet;
    QList<Packet> packetList;
    bool packetsLeft = true;
    while(packetsLeft) //there can be more packets which came together
    {
        Packet packet;
        packetsLeft = packet.decode(&rxData);
        if(packetsLeft)
            packetList.append(packet); //we will separate them and put into list
    }
    foreach(Packet packet, packetList)
    {
        if(packet.getPacketType()==Packet::SENSOR_INIT ||   //if piece of device list received
                packet.getPacketType()==Packet::REGULATOR_INIT)
        {
            //TODO: avoid adding the same dev twice
            DeviceInterface* device;
            if(packet.getPacketType()==Packet::SENSOR_INIT)
            {
                device = new SensorInterface();
                ScadaDevice* scadaDev = dynamic_cast<ScadaDevice*>(device);
                if(scadaDev->initReceived(&packet))
                {
                    deviceList->append(device);
                    emit deviceListChanged(device);
                }
                else delete device;
            }

        }
        
        if(packet.getPacketType()==Packet::DATA)
        {
            ScadaDevice* dev = findDevice(packet.getDeviceID());
            if(dev)
            {
                dev->dataReceived(&packet);
            }
        }
    }
}
Exemplo n.º 17
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::removeBus(t_bus_id id, bool deleteBus)
{
  Bus* bus = NULL;
  
  bus = searchBus(id);

  ASSERT(bus);

  m_busList.remove(bus);

  if (deleteBus == true)
    {
      delete bus;
    }

  emit deviceListChanged();

  setModified(true);
}
Exemplo n.º 18
0
void QHiMDDetection::scan_for_netmd_devices()
{
    netmd_device * md;
    netmd_error error = netmd_init(&dev_list);
    struct libusb_device_descriptor desc;
    QNetMDDevice * mddev;

    if (error != NETMD_NO_ERROR)
        return;

    md = dev_list;  // pick first device

    while( md != NULL) {
        libusb_get_device_descriptor(md->usb_dev, &desc);
        mddev = new QNetMDDevice();
        mddev->setName(identify_usb_device(desc.idVendor, desc.idProduct));
        mddev->setUsbDevice(md);
        dlist.append(mddev);
        emit deviceListChanged(dlist);
        md = md->link;  // pick next device
    }
}
Exemplo n.º 19
0
Arquivo: app.cpp Projeto: speakman/qlc
void App::initDeviceManagerView()
{
  // Create but don't show dm
  m_dmView = new DeviceManagerView(workspace());
  m_dmView->initView();
  m_dmView->resize(500, 300);

  QString config;
  settings()->get(KEY_DEVICE_MANAGER_OPEN, config);

  if (config == Settings::trueValue())
    {
      m_dmView->show();
      m_toolsMenu->setItemChecked(ID_VIEW_DEVICE_MANAGER, true);
    }
  else
    {
      m_dmView->hide();
      m_toolsMenu->setItemChecked(ID_VIEW_DEVICE_MANAGER, false);
    }

  connect(m_dmView, SIGNAL(closed()), this, SLOT(slotDeviceManagerViewClosed()));
  connect(m_doc, SIGNAL(deviceListChanged()), m_dmView->deviceManager(), SLOT(slotUpdateDeviceList()));
}
MediaListsManager::MediaListsManager(MainWindow* parent) : QObject(parent)
{
    m_application = (BangarangApplication*)KApplication::kApplication();
    Ui::MainWindowClass* ui = m_application->mainWindow()->ui;

    //Set up Audio lists view
    MediaListProperties audioListsProperties;
    audioListsProperties.lri = "medialists://audio";
    m_audioListsModel = new MediaItemModel(this);
    m_audioListsModel->setMediaListProperties(audioListsProperties);
    QListView* audioLists = m_application->mainWindow()->audioListsStack()->ui->audioLists;
    audioLists->setModel(m_audioListsModel);
    connect(audioLists->selectionModel(), SIGNAL(selectionChanged(const QItemSelection, const QItemSelection)), this, SLOT(audioListsSelectionChanged(const QItemSelection, const QItemSelection)));
    connect(m_audioListsModel, SIGNAL(mediaListChanged()), this, SLOT(audioListsChanged()));
    m_audioListsModel->load();
    QToolButton* audioListSelect = m_application->mainWindow()->ui->audioListSelect;
    connect(audioListSelect, SIGNAL(clicked()), this, SLOT(selectAudioList()));

    //Set up Video lists view
    MediaListProperties videoListsProperties;
    videoListsProperties.lri = "medialists://video";
    m_videoListsModel = new MediaItemModel(this);
    m_videoListsModel->setMediaListProperties(videoListsProperties);
    QListView* videoLists = m_application->mainWindow()->videoListsStack()->ui->videoLists;
    videoLists->setModel(m_videoListsModel);
    connect(videoLists->selectionModel(), SIGNAL(selectionChanged(const QItemSelection, const QItemSelection)), this, SLOT(videoListsSelectionChanged(const QItemSelection, const QItemSelection)));
    connect(m_videoListsModel, SIGNAL(mediaListChanged()), this, SLOT(videoListsChanged()));
    m_videoListsModel->load();
    QToolButton* videoListSelect = m_application->mainWindow()->ui->videoListSelect;
    connect(videoListSelect, SIGNAL(clicked()), this, SLOT(selectVideoList()));

    //Set up media list view
    m_loadingProgress = 0;
    MediaView* mediaView = ui->mediaView;
    mediaView->setMainWindow(m_application->mainWindow());
    mediaView->setSourceModel(m_application->browsingModel());
    connect(m_application->browsingModel(), SIGNAL(mediaListChanged()), this, SLOT(mediaListChanged()));
    connect(m_application->browsingModel(), SIGNAL(mediaListPropertiesChanged()), this, SLOT(mediaListPropertiesChanged()));
    connect(m_application->browsingModel(), SIGNAL(loading()), this, SLOT(mediaListLoading()));
    connect(m_application->browsingModel(), SIGNAL(loadingStateChanged(bool)), this, SLOT(mediaListLoadingStateChanged(bool)));
    connect(m_application->browsingModel(), SIGNAL(propertiesChanged()), this, SLOT(updateListHeader()));
    connect((MediaItemDelegate *)mediaView->itemDelegate(), SIGNAL(categoryActivated(QModelIndex)), this, SLOT(mediaListCategoryActivated(QModelIndex)));
    connect((MediaItemDelegate *)mediaView->itemDelegate(), SIGNAL(actionActivated(QModelIndex)), this, SLOT(mediaListActionActivated(QModelIndex)));
    connect(mediaView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection, const QItemSelection)), this, SLOT(mediaSelectionChanged(const QItemSelection, const QItemSelection)));
    connect(ui->previous, SIGNAL(clicked()), this, SLOT(loadPreviousList()));
    connect(m_application->playlist()->nowPlayingModel(), SIGNAL(mediaListChanged()), this, SLOT(nowPlayingChanged()));
    connect(m_application->mainWindow(), SIGNAL(switchedMainWidget(MainWindow::MainWidget)), this, SLOT(defaultListLoad(MainWindow::MainWidget)));

    //Setup media list filter
    ui->mediaListFilterProxyLine->lineEdit()->setClickMessage(QString());
    ui->mediaListFilterProxyLine->setProxy(ui->mediaView->filterProxyModel());
    ui->mediaListFilter->setVisible(false);
    connect(ui->closeMediaListFilter, SIGNAL(clicked()), this, SLOT(closeMediaListFilter()));

    //Set up play select/all buttons
    connect(ui->playAll, SIGNAL(clicked()), this, SLOT(playAll()));
    connect(ui->playSelected, SIGNAL(clicked()), this, SLOT(playSelected()));

    //Setup browsing model status notifications
    connect(m_application->browsingModel(), SIGNAL(statusUpdated()), this, SLOT(browsingModelStatusUpdated()));

    //Set up search
    KLineEdit* searchField = m_application->mainWindow()->ui->Filter;
    connect(searchField, SIGNAL(returnPressed()), this, SLOT(loadSearch()));

    //Set up device notifier
    connect(DeviceManager::instance(), SIGNAL(deviceListChanged(DeviceManager::RelatedType)),
            this, SLOT(updateDeviceList(DeviceManager::RelatedType)));

    //Set default media list selection
    showMediaList(AudioList);

}
Exemplo n.º 21
0
Arquivo: doc.cpp Projeto: speakman/qlc
void Doc::removeInputDevice(Joystick* j)
{
  m_inputDeviceList.remove(j);
  emit deviceListChanged();
}