#include <zeitverlauf.h>
Öffentliche Methoden | |
RatingVerlauf () | |
~RatingVerlauf () | |
void | testRatingVerlauf () |
void | RatingLoeschen (const MinSec &Endmoment) |
void | RatingAnhaengen (const MinSec &Endmoment, const RatingSkala Einschaetzung) |
MinSec | BisherLetzterMoment () |
IntervallErgebnis | RatingAuslesen (const MinSec &Endmoment) |
IntervallErgebnis | RatingAuslesen (MinSec2Rating::iterator it) |
QString | printRating (const MinSec &Endmoment) |
QString | printGesamtenRatingVerlauf (const MinSec &von, const MinSec &bis) |
bool | liesGesamtenRatingVerlauf (QTextStream &s) |
bool | speichereGesamtenRatingVerlauf (QTextStream &s, QString &derKlient, QString &derRater) |
int | verkuerzeUmAufeinanderfolgendGleiche () |
Öffentliche Attribute | |
MinSec2Rating | Sinneinheiten |
|
Definiert in Zeile 197 der Datei zeitverlauf.cpp. Benutzt MinSec(), null und Sinneinheiten.
00197 { 00198 // Konstruktor mit 00:00.000 und null Rating 00199 Sinneinheiten.insert(MinSec2Rating::value_type(MinSec(0,0,0),null)); 00200 }; |
|
Definiert in Zeile 202 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten.
00202 { 00203 Sinneinheiten.clear(); 00204 }; |
|
Definiert in Zeile 215 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten. Wird benutzt von VerlaufsAuswertung::GesamtDauer(), LFTVideoDialog::openKonfigDialog(), testRatingVerlauf() und LFTVideoDialog::~LFTVideoDialog().
00215 { 00216 MinSec2Rating::iterator it=Sinneinheiten.end(); 00217 it--; 00218 return it->first; 00219 } |
|
Definiert in Zeile 304 der Datei zeitverlauf.cpp. Benutzt MinSec::liesVonTextStream(), RatingAnhaengen(), RatingSkala und Sinneinheiten. Wird benutzt von VerlaufSpeichern::DatenLeseStream().
00304 { 00305 00306 Sinneinheiten.clear(); 00307 00308 int Einschaetzung; 00309 MinSec Zeitpunkt; 00310 bool OK; 00311 QString Wort; 00312 QChar c; 00313 00314 leseSchleife: 00315 while (! s.atEnd()){ 00316 00317 OK=Zeitpunkt.liesVonTextStream(s); 00318 if (!OK) { 00319 qDebug("Fehler beim Einlesen des Zeitpunktes"); 00320 return false; 00321 } 00322 s >> c; 00323 switch (c) { 00324 case '\t': 00325 s >> Wort; 00326 Einschaetzung=Wort.toInt(&OK); 00327 if (!OK) { 00328 qDebug("Fehler beim Umwandeln der Einschaetzung"); 00329 return false; 00330 } 00331 RatingAnhaengen(Zeitpunkt, (RatingSkala) Einschaetzung); 00332 00333 s >> c >> Wort >> c >> Wort >> c >> Wort >> c >> Wort >> c; 00334 // tab EinschDavor tab dauer tab Klient tab Rater tab 00335 00336 if (c!='\n'){ // falls uralte Version, dann ist die Zeile hier zuende 00337 s >> Wort >> c >> Wort >> c >> Wort >> c; 00338 // minuten TAB Sekunden TAB Millisekunden BR 00339 } 00340 00341 if (c!='\n') { 00342 qDebug("Rest der Zeile war nicht OK"); 00343 return false; 00344 } 00345 break; 00346 case '\n': 00347 goto leseSchleife; // nächste Zeile, weil nur 00:00, 00348 // mittlerweile obsolet 00349 break; 00350 default: 00351 qDebug("Quatsch beim Einlesen"); 00352 return false; 00353 break; 00354 } 00355 } 00356 return true; 00357 } |
|
Definiert in Zeile 281 der Datei zeitverlauf.cpp. Benutzt printRating() und Sinneinheiten. Wird benutzt von testRatingVerlauf().
00282 { 00283 qDebug("printGesamtenRatingVerlauf sollte NICHT verwendet werden, " 00284 "da a) suboptimal und b) riesiger QString als Resultat"); 00285 MinSec2Rating::iterator it; 00286 MinSec Zeitpunkt; 00287 QString temp=""; 00288 if ( bis < von ) 00289 return temp; 00290 00291 for (it=Sinneinheiten.lower_bound(von); it != Sinneinheiten.end(); ++it){ 00292 Zeitpunkt=(*it).first; 00293 if (bis < Zeitpunkt) 00294 break; 00295 00296 // suboptimal, weil darin noch ein map::find() 00297 temp+=printRating(Zeitpunkt); 00298 temp+="\n"; 00299 } 00300 00301 return temp; 00302 } |
|
Definiert in Zeile 268 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Dauer, RatingAuslesen(), IntervallErgebnis::toQString() und MinSec::toQString(). Wird benutzt von printGesamtenRatingVerlauf() und testRatingVerlauf().
00268 { 00269 00270 IntervallErgebnis gesamt; 00271 gesamt=RatingAuslesen(Endmoment); 00272 00273 QString temp; 00274 temp=Endmoment.toQString(); 00275 if ( gesamt.Dauer>=0 ) { 00276 temp+="\t"+gesamt.toQString(); 00277 } 00278 return temp; 00279 } |
|
Definiert in Zeile 210 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten. Wird benutzt von liesGesamtenRatingVerlauf(), testRatingVerlauf() und verkuerzeUmAufeinanderfolgendGleiche().
00211 { 00212 Sinneinheiten.insert(MinSec2Rating::value_type(Endmoment,Einschaetzung)); 00213 } |
|
Definiert in Zeile 241 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Dauer, IntervallErgebnis::Einschaetzung, IntervallErgebnis::EinschaetzungDavor, error und Sinneinheiten.
00241 { 00242 // TODO: Diese Routine tut eigentlich dasselbe wie 00243 // IntervallErgebnis RatingAuslesen (const MinSec &Endmoment) 00244 // nur noch ELEMENTARER, nämlich mit gegebenem Iterator 00245 // innerhalb der Map (statt einem Zeitpunkt, der erst gesucht werden muss) 00246 // TODO: dies sollte in obiges eingesetzt werden, 00247 // um Redundanz zu vermeiden 00248 00249 IntervallErgebnis temp(error, error,-1); 00250 00251 MinSec2Rating::iterator it2, it1; 00252 it2=it; 00253 00254 if (it2 != Sinneinheiten.end()) // IntervallENDE existiert 00255 temp.Einschaetzung=it2->second; 00256 00257 if (it2 != Sinneinheiten.begin()) // IntervallANFANG existiert 00258 { 00259 it1=it2; it1--; // it1 = gehe einen Schritt zurück 00260 temp.EinschaetzungDavor=it1->second; 00261 } 00262 if (temp.Einschaetzung != error && temp.EinschaetzungDavor != error) 00263 temp.Dauer=(it1->first).secsTo(it2->first); 00264 00265 return temp; 00266 } |
|
Definiert in Zeile 221 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Dauer, IntervallErgebnis::Einschaetzung, IntervallErgebnis::EinschaetzungDavor, error und Sinneinheiten. Wird benutzt von VerlaufsAuswertung::DatenAnalysieren(), VerlaufsAuswertung::DatenAnzeigen(), printRating(), testRatingVerlauf() und verkuerzeUmAufeinanderfolgendGleiche().
00221 { 00222 IntervallErgebnis temp(error, error,-1); 00223 00224 MinSec2Rating::iterator it2, it1; 00225 it2=Sinneinheiten.find(Endmoment); 00226 00227 if (it2 != Sinneinheiten.end()) // IntervallENDE existiert 00228 temp.Einschaetzung=it2->second; 00229 00230 if (it2 != Sinneinheiten.begin()) // IntervallANFANG existiert 00231 { 00232 it1=it2; it1--; // it1 = gehe einen Schritt zurück 00233 temp.EinschaetzungDavor=it1->second; 00234 } 00235 if (temp.Einschaetzung != error && temp.EinschaetzungDavor != error) 00236 temp.Dauer=(it1->first).secsTo(it2->first); 00237 00238 return temp; 00239 } |
|
Definiert in Zeile 206 der Datei zeitverlauf.cpp. Benutzt Sinneinheiten. Wird benutzt von verkuerzeUmAufeinanderfolgendGleiche().
00206 { 00207 Sinneinheiten.erase(Endmoment); 00208 } |
|
Definiert in Zeile 360 der Datei zeitverlauf.cpp. Benutzt MinSec(), null, RatingSkala, Sinneinheiten und MinSec::toSecs(). Wird benutzt von VerlaufSpeichern::DatenSpeicherStream().
00361 { 00362 00363 MinSec Zeitpunkt=MinSec(0,0), ZeitpunktDavor=MinSec(0,0); 00364 RatingSkala Einsch=null, EinschDavor=null; 00365 double Dauer=0; 00366 MinSec2Rating::iterator it; 00367 it = Sinneinheiten.begin(); 00368 00369 for ( ; it!= Sinneinheiten.end(); ++it){ 00370 ZeitpunktDavor=Zeitpunkt; 00371 Zeitpunkt=it->first; 00372 Dauer=(Zeitpunkt - ZeitpunktDavor).toSecs(); 00373 00374 EinschDavor=Einsch; 00375 Einsch=it->second; 00376 00377 s << Zeitpunkt.toQString() << '\t'; 00378 s << Einsch << '\t'; 00379 s << EinschDavor << '\t'; 00380 s << Dauer << '\t'; 00381 s << derKlient << '\t'; 00382 s << derRater << '\t'; 00383 s << Zeitpunkt.mins() << '\t'; 00384 s << (int) Zeitpunkt.secs() << '\t'; 00385 s << Zeitpunkt.millisecs() << '\n'; 00386 } 00387 return true; // TODO: Was passiert, wenn innerhalb zB Platte voll? 00388 } |
|
Definiert in Zeile 424 der Datei zeitverlauf.cpp. Benutzt BisherLetzterMoment(), KL, KNL, MinSec(), printGesamtenRatingVerlauf(), printRating(), RatingAnhaengen(), RatingAuslesen(), TL, TNL und IntervallErgebnis::toQString().
00424 { 00425 00426 qDebug("\nRatingVerlauf::testRatingVerlauf"); 00427 RatingAnhaengen (MinSec(0,13,100), TL); 00428 RatingAnhaengen (MinSec(0,23.9), TNL); 00429 RatingAnhaengen (MinSec(0,37.6), KNL); 00430 RatingAnhaengen (MinSec(1,10,0), KL); 00431 00432 qDebug("letzter Moment " + BisherLetzterMoment().toQString() ); 00433 00434 MinSec EndMoment; 00435 EndMoment=MinSec(1,10); 00436 IntervallErgebnis ges; 00437 ges=RatingAuslesen(EndMoment); 00438 qDebug(ges.toQString()); 00439 00440 qDebug(printRating (MinSec(0,0))); 00441 qDebug(printRating (MinSec(0,13.1))); 00442 qDebug(printRating (MinSec(0,23.9))); 00443 qDebug(printRating (MinSec(0,37.6))); 00444 qDebug(printRating (MinSec(1,10))); 00445 qDebug(printRating (MinSec(1,11))); 00446 00447 qDebug("\n\nUnd nun alles in einer Routine:"); 00448 qDebug(printGesamtenRatingVerlauf (MinSec(0,0), BisherLetzterMoment())); 00449 00450 qDebug("\n\nUnd nun nur die mittleren 3:"); 00451 qDebug(printGesamtenRatingVerlauf (MinSec(0,12), MinSec(0,38))); 00452 }; |
|
Definiert in Zeile 392 der Datei zeitverlauf.cpp. Benutzt IntervallErgebnis::Einschaetzung, error, MinSec(), RatingAnhaengen(), RatingAuslesen(), RatingLoeschen(), RatingSkala und Sinneinheiten. Wird benutzt von LFTVideoAnalyseDialog::DatensatzVerkuerzen().
00392 { 00393 00394 RatingVerlauf kuerzer; 00395 long anzahlGekuerzter=0; 00396 00397 IntervallErgebnis interv; 00398 RatingSkala letzteEinschaetzung = error; 00399 MinSec letzterZeitpunkt = MinSec(0,0); 00400 00401 MinSec2Rating::iterator it; 00402 it = Sinneinheiten.begin(); 00403 for ( ; it != Sinneinheiten.end() ; it++){ 00404 interv=RatingAuslesen(it); 00405 if (interv.Einschaetzung != letzteEinschaetzung) { 00406 // falls DIESE Einschätzung anders, dann speichere die LETZTE 00407 kuerzer.RatingAnhaengen(letzterZeitpunkt, letzteEinschaetzung ); 00408 } else{ 00409 // sonst ignorier DIESE und incrementiere nur Zähler 00410 anzahlGekuerzter++; 00411 } 00412 letzteEinschaetzung=interv.Einschaetzung; 00413 letzterZeitpunkt=it->first; 00414 } 00415 // TODO: Stimmt das? Der letzte wird NIE eingefügt, oder? 00416 kuerzer.RatingAnhaengen(letzterZeitpunkt, letzteEinschaetzung ); 00417 00418 00419 this->RatingLoeschen(MinSec(0,0)); // leere sicherheitshalber aktuelle Map 00420 this->Sinneinheiten = kuerzer.Sinneinheiten; // TODO: ist das ein COPY ? 00421 return anzahlGekuerzter; 00422 } |
|