M module-bsp/board/linux/usb_cdc/usb_cdc.cpp => module-bsp/board/linux/usb_cdc/usb_cdc.cpp +1 -1
@@ 150,7 150,7 @@ namespace bsp
std::remove(ptsFileName);
}
- void usbReinit(const char * /*mtpRoot*/)
+ void usbReinit(const std::string &)
{
LOG_INFO("usbReinit");
}
M module-bsp/bsp/usb/usb.hpp => module-bsp/bsp/usb/usb.hpp +3 -2
@@ 35,7 35,8 @@ namespace bsp
{
xQueueHandle queueHandle;
xQueueHandle irqQueueHandle;
- const char *serialNumber;
+ std::string serialNumber;
+ std::string rootPath;
};
int usbInit(const usbInitParams &initParams);
@@ 43,7 44,7 @@ namespace bsp
int usbCDCSend(std::string *sendMsg);
int usbCDCSendRaw(const char *dataPtr, size_t dataLen);
void usbDeinit();
- void usbReinit(const char *mtpRoot);
+ void usbReinit(const std::string& rootPath);
void usbSuspend();
void usbHandleDataReceived();
M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +6 -3
@@ 195,8 195,11 @@ auto ServiceDesktop::usbWorkerInit() -> sys::ReturnCodes
LOG_DEBUG("usbWorkerInit Serial Number: %s", serialNumber.c_str());
- desktopWorker = std::make_unique<WorkerDesktop>(
- this, std::bind(&ServiceDesktop::restartConnectionActiveTimer, this), *usbSecurityModel, serialNumber);
+ desktopWorker = std::make_unique<WorkerDesktop>(this,
+ std::bind(&ServiceDesktop::restartConnectionActiveTimer, this),
+ *usbSecurityModel,
+ serialNumber,
+ purefs::dir::getUserDiskPath() / "music");
initialized =
desktopWorker->init({{sdesktop::RECEIVE_QUEUE_BUFFER_NAME, sizeof(std::string *), sdesktop::cdc_queue_len},
@@ 220,7 223,7 @@ auto ServiceDesktop::usbWorkerDeinit() -> sys::ReturnCodes
settings->deinit();
desktopWorker->closeWorker();
desktopWorker.reset();
- initialized = false;
+ initialized = false;
isUsbConfigured = false;
}
return sys::ReturnCodes::Success;
M module-services/service-desktop/WorkerDesktop.cpp => module-services/service-desktop/WorkerDesktop.cpp +7 -6
@@ 23,9 23,10 @@ inline constexpr auto uploadFailedMessage = "file upload terminated before all d
WorkerDesktop::WorkerDesktop(sys::Service *ownerServicePtr,
std::function<void()> messageProcessedCallback,
const sdesktop::USBSecurityModel &securityModel,
- const std::string &serialNumber)
- : sys::Worker(ownerServicePtr, sdesktop::worker_stack), securityModel(securityModel), serialNumber(serialNumber),
- ownerService(ownerServicePtr), parser(ownerServicePtr),
+ const std::string &serialNumber,
+ const std::string &rootPath)
+ : sys::Worker(ownerServicePtr, sdesktop::worker_stack), securityModel(securityModel),
+ serialNumber(serialNumber), rootPath{rootPath}, ownerService(ownerServicePtr), parser(ownerServicePtr),
messageProcessedCallback(std::move(messageProcessedCallback))
{}
@@ 45,7 46,7 @@ bool WorkerDesktop::init(std::list<sys::WorkerQueueInfo> queues)
auto sentinelRegistrationMsg = std::make_shared<sys::SentinelRegistrationMessage>(cpuSentinel);
ownerService->bus.sendUnicast(sentinelRegistrationMsg, service::name::system_manager);
- bsp::usbInitParams initParams = {receiveQueue, irqQueue, serialNumber.c_str()};
+ bsp::usbInitParams initParams = {receiveQueue, irqQueue, serialNumber, rootPath};
initialized = bsp::usbInit(initParams) >= 0;
@@ 90,7 91,7 @@ bool WorkerDesktop::reinit(const std::filesystem::path &path)
{
LOG_DEBUG("Reinit USB begin");
- bsp::usbReinit(path.c_str());
+ bsp::usbReinit(path);
LOG_DEBUG("Reinit USB end");
return true;
@@ 102,7 103,7 @@ void WorkerDesktop::reset()
usbStatus = bsp::USBDeviceStatus::Disconnected;
bsp::usbDeinit();
- bsp::usbInitParams initParams = {receiveQueue, irqQueue, serialNumber.c_str()};
+ bsp::usbInitParams initParams = {receiveQueue, irqQueue, serialNumber, rootPath};
initialized = bsp::usbInit(initParams) >= 0;
if (initialized) {
usbStatus = bsp::USBDeviceStatus::Connected;
M module-services/service-desktop/WorkerDesktop.hpp => module-services/service-desktop/WorkerDesktop.hpp +3 -1
@@ 22,7 22,8 @@ class WorkerDesktop : public sys::Worker
WorkerDesktop(sys::Service *ownerServicePtr,
std::function<void()> messageProcessedCallback,
const sdesktop::USBSecurityModel &securityModel,
- const std::string &serialNumber);
+ const std::string &serialNumber,
+ const std::string &rootPath);
virtual bool init(std::list<sys::WorkerQueueInfo> queues) override;
void closeWorker();
@@ 50,6 51,7 @@ class WorkerDesktop : public sys::Worker
xQueueHandle irqQueue;
const sdesktop::USBSecurityModel &securityModel;
const std::string serialNumber;
+ std::string rootPath;
sys::Service *ownerService = nullptr;
sdesktop::endpoints::StateMachine parser;
bsp::USBDeviceStatus usbStatus = bsp::USBDeviceStatus::Disconnected;
M third-party/usb_stack => third-party/usb_stack +1 -1
@@ 1,1 1,1 @@
-Subproject commit 2f68b39236f706d9f1dea0789c3869cfcd449b02
+Subproject commit 1712d16bacb5a07c2e0a56ee7952e279d290fb47