bool wxTextFile::OnWrite(wxTextFileType typeNew, const wxMBConv& conv) { wxFileName fn = m_strBufferName; // We do NOT want wxPATH_NORM_CASE here, or the case will not // be preserved. if ( !fn.IsAbsolute() ) fn.Normalize(wxPATH_NORM_ENV_VARS | wxPATH_NORM_DOTS | wxPATH_NORM_TILDE | wxPATH_NORM_ABSOLUTE | wxPATH_NORM_LONG); wxTempFile fileTmp(fn.GetFullPath()); if ( !fileTmp.IsOpened() ) { wxLogError(_("can't write buffer '%s' to disk."), m_strBufferName.c_str()); return false; } size_t nCount = GetLineCount(); for ( size_t n = 0; n < nCount; n++ ) { fileTmp.Write(GetLine(n) + GetEOL(typeNew == wxTextFileType_None ? GetLineType(n) : typeNew), conv); } // replace the old file with this one return fileTmp.Commit(); }
bool SpeechRecognizerModule::handleAsyncRecognitionCmd(const Bottle& cmd, Bottle& reply) { HRESULT hr; string firstVocab = cmd.get(0).asString().c_str(); if (firstVocab == "getGrammar") { reply.addString("NOT_IMPLEMENTED"); return true; } if (firstVocab == "clear") { bool everythingIsFine=true; SPSTATEHANDLE rootRule; everythingIsFine &= SUCCEEDED(m_cpGrammarFromFile->SetGrammarState(SPGS_DISABLED)); everythingIsFine &= SUCCEEDED(m_cpGrammarFromFile->GetRule(L"rootRule", NULL, SPRAF_TopLevel | SPRAF_Active, TRUE, &rootRule)); everythingIsFine &= SUCCEEDED(m_cpGrammarFromFile->ClearRule(rootRule)); everythingIsFine &= SUCCEEDED(hr = m_cpGrammarFromFile->Commit(NULL)); everythingIsFine &= SUCCEEDED(m_cpGrammarFromFile->SetGrammarState(SPGS_ENABLED)); everythingIsFine &= SUCCEEDED(m_cpGrammarFromFile->SetRuleState(NULL, NULL, SPRS_ACTIVE)); everythingIsFine &= SUCCEEDED(m_cpRecoCtxt->Resume(0)); reply.addString("Cleared"); return true; } if (firstVocab == "addGrammar") { string grammar = cmd.get(1).asString().c_str(); bool everythingIsFine = setGrammarCustom(m_cpGrammarFromFile,grammar,true); reply.addString("Added"); return true; } if (firstVocab == "loadXML") { string xml = cmd.get(1).asString().c_str(); ofstream fileTmp("grammarTmp.grxml"); fileTmp<<xml; fileTmp.close(); std::wstring tmp = s2ws("grammarTmp.grxml"); LPCWSTR cwgrammarfile = tmp.c_str(); bool everythingIsFine =true; //everythingIsFine &= SUCCEEDED( m_cpRecoCtxt->CreateGrammar( 1, &m_cpGrammarFromFile )); everythingIsFine &= SUCCEEDED( m_cpGrammarFromFile->SetGrammarState(SPGS_DISABLED)); everythingIsFine &= SUCCEEDED( m_cpGrammarFromFile->LoadCmdFromFile(cwgrammarfile, SPLO_DYNAMIC)); everythingIsFine &= SUCCEEDED( m_cpGrammarFromFile->SetGrammarState(SPGS_ENABLED)); everythingIsFine &= SUCCEEDED(m_cpGrammarFromFile->SetRuleState(NULL, NULL, SPRS_ACTIVE)); everythingIsFine &= SUCCEEDED(m_cpRecoCtxt->Resume(0)); refreshFromVocabulories(m_cpGrammarFromFile); reply.addString("Loaded"); return true; } return false; }
int ArcWriter::buildArchive(QString sourceDir, QString outputPath) { QHash<quint32, size_offset_t> oldOffsetToNewSizeOffset; QFile outputFile(outputPath); if(!outputFile.open(QIODevice::WriteOnly)) { return 1; } // Write entries count and data offset outputFile.write((char*)&entriesCount, sizeof(quint32)); outputFile.write((char*)&dataOffset, sizeof(quint32)); // Write undecoded header outputFile.write(undecodedHeader); // Update entries data QVector<arc_entry_t>::iterator it; QVector<arc_entry_t> sortedEntries(entries); qSort(sortedEntries.begin(), sortedEntries.end(), arc_entry_t::lessThan); quint32 accumOffset = sortedEntries.begin()->offset; for( it = sortedEntries.begin(); it != sortedEntries.end(); ++it) { arc_entry_t entry = *it; QString fileName = offsetToFileName.value(entry.offset); QString path = sourceDir + QString("\\") + fileName; QFile fileTmp(path); fileTmp.open(QIODevice::ReadOnly); quint32 realSize = fileTmp.size(); fileTmp.close(); oldOffsetToNewSizeOffset.insert(it->offset, size_offset_t(realSize, accumOffset)); accumOffset += realSize; } sortedEntries.clear(); // Write entries list for( it = entries.begin(); it != entries.end(); ++it) { arc_entry_t entry = *it; // Apply corrections size_offset_t newInfo = oldOffsetToNewSizeOffset.value(entry.offset); entry.offset = newInfo.offset; entry.size = newInfo.size; outputFile.write((char*)&entry, sizeof(arc_entry_t)); } // Copy files data QVector<QString>::iterator file_it; for( file_it = files.begin(); file_it != files.end(); ++file_it) { QString path = sourceDir + QString("\\") + *file_it; QFile fileIn(path); if(!fileIn.open(QIODevice::ReadOnly)) { fprintf(stderr, "File [%s] open failed!\n", path.toAscii().data()); return 1; } /*if (checkSize && (fileIn.size() != file_it->second)) { fprintf(stderr, "File [%s] size check failed!\n", path.toAscii().data()); return 1; }*/ outputFile.write(fileIn.readAll()); fileIn.close(); } outputFile.close(); return 0; }
void TelechargerFichier::nouveauTelechargement(const QString lien) { show(); emit DesactiverIcone(); if (lien.isEmpty() && lineLien->text().isEmpty()) return; QUrl urlFichier = lineLien->text(); if (!lien.isEmpty()) urlFichier = lien; QUrlInfo infosUrl; infosUrl.setName(lineLien->text()); if (!lien.isEmpty()) infosUrl.setName(lien); if (infosUrl.isFile()) { QFileInfo infosDL(infosUrl.name()); if (QMessageBox::question(this, "Multiuso", "Voulez-vous enregistrer <em>« " + infosDL.fileName() + " »</em> ?", QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) return; QSettings emplacementDossier(Multiuso::appDirPath() + "/ini/config.ini", QSettings::IniFormat); QDir dir; dir.mkpath(emplacementDossier.value("telechargements/dossier").toString() + "/Multiuso - Téléchargements"); QFile fileTmp(emplacementDossier.value("telechargements/dossier").toString() + "/Multiuso - Téléchargements/" + infosDL.fileName()); if (fileTmp.exists()) { int reponse = QMessageBox::question(this, "Multiuso", "Le fichier <em>« " + infosDL.fileName() + " »</em> existe déjà !<br />" "Voulez-vous le remplacer ?", QMessageBox::Yes | QMessageBox::No); if (reponse == QMessageBox::Yes) fileTmp.remove(); else return; } QNetworkRequest requete(urlFichier); QNetworkAccessManager *manager = new QNetworkAccessManager; QNetworkReply *reponse = manager->get(requete); connect(reponse, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(telechargementContinue(qint64, qint64))); connect(reponse, SIGNAL(finished()), this, SLOT(finTelechargement())); reponses << reponse; QProgressBar *progression = new QProgressBar; progressionsTelechargements << progression; nomsFichiers << infosDL.fileName(); QString nomDuFichierActuel = infosDL.fileName(); nomDuFichierActuel = Multiuso::htmlspecialchars(nomDuFichierActuel); QTableWidgetItem *nom = new QTableWidgetItem(nomDuFichierActuel); nom->setFlags(nom->flags() & ~Qt::ItemIsEditable); QTableWidgetItem *statut = new QTableWidgetItem("En attente..."); statut->setFlags(statut->flags() & ~Qt::ItemIsEditable); QPushButton *annuler = new QPushButton; annuler->setToolTip("Téléchargement n°" + QString::number(listeTelechargements->rowCount() + 1)); annuler->setIcon(QIcon(":/icones/telechargements/annuler.png")); connect(annuler, SIGNAL(clicked()), this, SLOT(annulerTelechargement())); int ligne = listeTelechargements->rowCount(); listeTelechargements->setRowCount(listeTelechargements->rowCount() + 1); listeTelechargements->setCellWidget(ligne, 0, annuler); listeTelechargements->setItem(ligne, 1, nom); listeTelechargements->setCellWidget(ligne, 2, progression); listeTelechargements->setItem(ligne, 3, statut); listeTelechargements->resizeColumnsToContents(); listeTelechargements->horizontalHeader()->setStretchLastSection(true); } }
bool SpeechRecognizerModule::handleRecognitionCmd(const Bottle& cmd, Bottle& reply) { string firstVocab = cmd.get(0).asString().c_str(); if (firstVocab == "timeout") { m_timeout = cmd.get(1).asInt(); //reply.addInt(true); return false; } else if (firstVocab == "dictation") { bool everythingIsFine = TRUE; everythingIsFine &= SUCCEEDED(m_cpGrammarDictation->SetDictationState( SPRS_ACTIVE )); yInfo() <<"Dictation is on..." ; if (!USE_LEGACY) { reply.addList() = waitNextRecognition(m_timeout); } else { list< pair<string, double> > results = waitNextRecognitionLEGACY(m_timeout); if (results.size()>0) for(list< pair<string, double> >::iterator it = results.begin(); it != results.end(); it++) { reply.addString(it->first.c_str()); reply.addDouble(it->second); } else reply.addString("-1"); } yInfo() <<"Dictation is off..."; //Turn off dictation and go back to the file grammar everythingIsFine &= SUCCEEDED(m_cpGrammarDictation->SetDictationState( SPRS_INACTIVE )); everythingIsFine &=SUCCEEDED(m_cpGrammarFromFile->SetGrammarState(SPGS_ENABLED)); //reply.addInt(true); return true; } // If we are not in dictation then we set and switch to the runtimeGrammar else if (firstVocab == "grammarXML") { string xml = cmd.get(1).asString().c_str(); ofstream fileTmp("grammarTmp.grxml"); fileTmp<<xml; fileTmp.close(); std::wstring tmp = s2ws("grammarTmp.grxml"); LPCWSTR cwgrammarfile = tmp.c_str(); bool everythingIsFine =true; everythingIsFine &= SUCCEEDED( m_cpGrammarRuntime->SetGrammarState(SPGS_DISABLED)); everythingIsFine &= SUCCEEDED( m_cpGrammarRuntime->LoadCmdFromFile(cwgrammarfile, SPLO_DYNAMIC)); everythingIsFine &= SUCCEEDED(m_cpGrammarRuntime->SetRuleState(NULL, NULL, SPRS_ACTIVE)); everythingIsFine &= SUCCEEDED(m_cpRecoCtxt->Resume(0)); refreshFromVocabulories(m_cpGrammarRuntime); //reply.addInt(everythingIsFine); } else if (firstVocab == "choices") { string choices =""; for (int wI = 1; wI < cmd.size(); wI++) { choices+=cmd.get(wI).asString().c_str(); if (wI<cmd.size()-1) choices+="|"; } setGrammarCustom(m_cpGrammarRuntime,choices,false); } else if (firstVocab == "grammarSimple") { string RADStyle = cmd.get(1).asString().c_str(); yInfo() <<"Setting runtime grammar to : "<<RADStyle ; setGrammarCustom(m_cpGrammarRuntime,RADStyle,false); } else { reply.addString("UNKNOWN"); return false; } //Disable the from file grammar SUCCEEDED(m_cpGrammarFromFile->SetGrammarState(SPGS_DISABLED)); SUCCEEDED(m_cpGrammarRuntime->SetGrammarState(SPGS_ENABLED)); //Force blocking recognition if (!USE_LEGACY) { reply.addList() = waitNextRecognition(m_timeout); } else { list< pair<string, double> > results = waitNextRecognitionLEGACY(m_timeout); if (results.size()>0) for(list< pair<string, double> >::iterator it = results.begin(); it != results.end(); it++) { reply.addString(it->first.c_str()); reply.addDouble(it->second); } else reply.addString("-1"); } //Disable the runtime grammar SUCCEEDED(m_cpGrammarRuntime->SetGrammarState(SPGS_DISABLED)); SUCCEEDED(m_cpGrammarFromFile->SetGrammarState(SPGS_ENABLED)); return true; }