MCPcopy Create free account
hub / github.com/OneMoreGres/ScreenTranslator / handle

Method handle

src/ocr/recognizerworker.cpp:8–44  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6RecognizeWorker::~RecognizeWorker() = default;
7
8void RecognizeWorker::handle(const TaskPtr &task)
9{
10 SOFT_ASSERT(task, return );
11 SOFT_ASSERT(task->isValid(), return );
12 SOFT_ASSERT(!tessdataPath_.isEmpty(), return );
13
14 LTRACE() << "Start recognize" << task->captured;
15 auto result = task;
16
17 if (!engines_.count(task->sourceLanguage)) {
18 LTRACE() << "Create OCR engine" << task->sourceLanguage;
19
20 auto engine =
21 std::make_unique<Tesseract>(task->sourceLanguage, tessdataPath_);
22
23 if (!engine->isValid()) {
24 result->error = tr("Failed to init OCR engine: %1").arg(engine->error());
25 emit finished(result);
26 return;
27 }
28
29 engines_.emplace(task->sourceLanguage, std::move(engine));
30 LTRACE() << "Added OCR engine" << task->sourceLanguage;
31 }
32
33 auto &engine = engines_[task->sourceLanguage];
34 SOFT_ASSERT(engine->isValid(), return );
35
36 result->recognized = engine->recognize(task->captured);
37 if (result->recognized.isEmpty())
38 result->error = engine->error();
39
40 lastGenerations_[task->sourceLanguage] = task->generation;
41 removeUnused(task->generation);
42
43 emit finished(result);
44}
45
46void RecognizeWorker::reset(const QString &tessdataPath)
47{

Callers

nothing calls this directly

Calls 2

isValidMethod · 0.45
recognizeMethod · 0.45

Tested by

no test coverage detected