1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #include "UVCDeviceManager.h"
- #include "../DataManager/DataManager.h"
- #include "../DataManager/DataPackage.h"
- void UVCManager::init()
- {
- // get device list
- uvc_device_t **deviceList;
- uvc_get_device_list(ctx, &deviceList);
- // get device number
- deviceNum = 0;
- while (deviceList[deviceNum] != NULL)
- {
- deviceNum++;
- }
- std::cout << "Device Number: " << deviceNum << std::endl;
- // init the Uvc device by deviceNum
- for (int i = 0; i < deviceNum; i++)
- {
- UVCDevice *uvcDevice = new UVCDevice();
- uvcDevice->init(i, ctx, deviceList[i]);
- uvcDevice->setCallBack(cbSaveToLocal);
- uvcDeviceList.push_back(uvcDevice);
- // init the data manager
- DataManager::getInstance().addDataPipe<DataPackage>("uvc" + std::to_string(i));
- }
- m_GpioExplorer = std::make_shared<GPIOExplorer>("gpiochip0", 16);
- }
- int UVCManager::deliverFrameInCallBack(uvc_device_handle_t *devh)
- {
- int i = 0;
- std::list<UVCDevice *>::iterator it = uvcDeviceList.begin();
- for (; it != uvcDeviceList.end(); it++, i++)
- {
- if ((*it)->getDevh() == devh)
- {
- return i;
- }
- }
- return -1;
- }
- void UVCManager::startAllStreaming()
- {
- for (auto uvcDevice : uvcDeviceList)
- {
- uvcDevice->startStreaming();
- }
- }
- void UVCManager::stopAllStreaming()
- {
- for (auto uvcDevice : uvcDeviceList)
- {
- uvcDevice->stopStreaming();
- }
- }
|