MCPcopy Create free account
hub / github.com/codestation/qcma / start

Method start

cli/headlessmanager.cpp:71–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69}
70
71void HeadlessManager::start()
72{
73 VitaMTP_Init();
74
75 if(VitaMTP_USB_Init() < 0) {
76 emit messageSent(tr("Cannot initialize VitaMTP USB library"));
77 return;
78 }
79
80 if(QSettings().value("useMemoryStorage", true).toBool()) {
81 m_db = new QListDB();
82 } else {
83 m_db = new SQLiteDB();
84 }
85
86 // initializing database for the first use
87 refreshDatabase();
88
89 // send a signal when the update is finished
90 connect(m_db, &QListDB::updated, this, &HeadlessManager::databaseUpdated);
91
92 thread_count = 0;
93 qDebug("Starting cma threads");
94 CmaClient *client;
95 QSettings settings;
96
97 if(!settings.value("disableUSB", false).toBool()) {
98 usb_thread = new QThread();
99 client = new CmaClient(m_db);
100 usb_thread->setObjectName("usb_thread");
101 connect(usb_thread, &QThread::started, client, &CmaClient::connectUsb);
102 connect(client, &CmaClient::finished, usb_thread, &QThread::quit, Qt::DirectConnection);
103 connect(usb_thread, &QThread::finished, usb_thread, &QObject::deleteLater);
104 connect(usb_thread, &QThread::finished, this, &HeadlessManager::threadStopped);
105 connect(usb_thread, &QThread::finished, client, &QObject::deleteLater);
106
107 connect(client, &CmaClient::refreshDatabase, this, &HeadlessManager::refreshDatabase);
108
109 client->moveToThread(usb_thread);
110 usb_thread->start();
111 thread_count++;
112 }
113
114 if(!settings.value("disableWireless", false).toBool()) {
115 CmaBroadcast *broadcast = new CmaBroadcast(this);
116 wireless_thread = new QThread();
117 client = new CmaClient(m_db, broadcast);
118 wireless_thread->setObjectName("wireless_thread");
119 connect(wireless_thread, &QThread::started, client, &CmaClient::connectWireless);
120 connect(client, &CmaClient::finished, wireless_thread, &QThread::quit, Qt::DirectConnection);
121 connect(wireless_thread, &QThread::finished, wireless_thread, &QObject::deleteLater);
122 connect(wireless_thread, &QThread::finished, this, &HeadlessManager::threadStopped);
123 connect(wireless_thread, &QThread::finished, client, &QObject::deleteLater);
124
125 connect(client, &CmaClient::refreshDatabase, this, &HeadlessManager::refreshDatabase);
126
127 client->moveToThread(wireless_thread);
128 wireless_thread->start();

Callers 7

mainFunction · 0.45
enterEventLoopMethod · 0.45
QListDBMethod · 0.45
rescanMethod · 0.45
SQLiteDBMethod · 0.45
rescanMethod · 0.45

Calls 1

valueMethod · 0.80

Tested by

no test coverage detected