Főoldal | Osztályhierarchia | Osztálylista | Fájllista | Osztálytagok | Fájlelemek | Kapcsolódó lapok

WaveWidget osztályreferencia

Kirajzolja a hullámot és irányítja a lejátszást. Részletek...

#include <wavewidget.hh>

A tagok teljes listája.

Publikus rések

void playSelected ()
 Lejátsza a kiválasztott intervallumot.

void stopPlayback ()
 Leállítja a lejátszást.

void setXZoom (int zoom)
 Beállítja a hullám X felbontását.

void setYZoom (int zoom)
 Beállítja a hullám Y nagyítását.

void scrollTo (int start)
 A megadott időhöz állítja a widgetet.


Szignálok

void startTimeChanged (QTime *start)
 Értesíti a SubTimerWnd -t a kezdőpont változásáról.

void endTimeChanged (QTime *end)
 Értesíti a SubTimerWnd -t a végpont változásáról.

void lengthChanged (int length)
 Értesíti a SubTimerWnd -t a hossz megváltozásáról.

void positionChanged (int pos)
 Értesíti a SubTimerWnd -t a hullám görgetéséről.


Publikus tagfüggvények

 WaveWidget (QWidget *parent=0, const char *name=0)
 Készít egy WaveWidget widgetet.

bool loadFile (QString const fname)
 Betölt egy hangfájlt.

bool isVisible (QTime const t) const
 Megadja, hogy az adott időpont látható-e a widgetben.

QTime startTime () const
 Megadja az aktuális kezdőpontot.

QTime endTime () const
 Megadja az aktuális végpontot.

void setStartTime (QTime t)
 Beállítja a kezdőpontot és újrarajzolja a widgetet.

void setEndTime (QTime t)
 Beállítja a végpontot és újrarazolja a widgetet.


Védett tagfüggvények

void customEvent (QCustomEvent *e)
 A PlayThread::Finished eseményt kezeli.

void mousePressEvent (QMouseEvent *e)
 A widgetre érkező egérklikkeket kezeli.

void paintEvent (QPaintEvent *)
 Kirajzolja a widgetet.


Részletes leírás

Kirajzolja a hullámot és irányítja a lejátszást.

A SubTimer fő widgeteként a WaveWidget végzi a legtöbb feladatot, ami a hangfájllal kapcsolatos. Ez az osztály kommunikál a WaveFile és PlayThread osztályokkal, valamint SubTimerWnd -vel, a fő párbeszédablakkal.

Tennivaló:
A hanghullámot sötétebben kéne rajzolni az utolsó időzített felirat után.

Definíció a(z) wavewidget.hh fájl 76. sorában.


Tagfüggvények dokumentációja

void WaveWidget::customEvent QCustomEvent *  e  )  [protected]
 

A PlayThread::Finished eseményt kezeli.

Paraméterek:
e a kezelendő esemény

Definíció a(z) wavewidget.cc fájl 166. sorában.

QTime WaveWidget::endTime  )  const
 

Megadja az aktuális végpontot.

Visszatérési érték:
Az aktuális végpontja a kiválasztott intervallumnak.

Definíció a(z) wavewidget.cc fájl 124. sorában.

void WaveWidget::endTimeChanged QTime *  end  )  [signal]
 

Értesíti a SubTimerWnd -t a végpont változásáról.

Paraméterek:
end az új végpont

Hivatkozások: mousePressEvent().

bool WaveWidget::isVisible QTime const  t  )  const
 

Megadja, hogy az adott időpont látható-e a widgetben.

Paraméterek:
t a kérdéses időpont
Visszatérési érték:
true, ha t látható, false különben.

Definíció a(z) wavewidget.cc fájl 102. sorában.

void WaveWidget::lengthChanged int  length  )  [signal]
 

Értesíti a SubTimerWnd -t a hossz megváltozásáról.

A görgethető hosszt kell megadni paraméternek, tehát a teljes megjelenítési hosszt mínusz a látható hosszt.

Paraméterek:
length az új hossz ezredmásodpercekben

Hivatkozások: loadFile() és setXZoom().

bool WaveWidget::loadFile QString const  fname  ) 
 

Betölt egy hangfájlt.

Becsukja a már megnyitott hangfájlt és meghívja a WaveFile osztály egy leszármazottját a fájl kiterjesztésének megfelelően.

Paraméterek:
fname a fájl neve
Visszatérési érték:
true, ha a betöltés sikeres volt, false egyébként.
Megjegyzés:
Pillanatnyilag csak Ogg fájlokat kezel.

Tennivaló:
Hozzá kéne adni még az Mpeg Layer 3 és Microsoft Wave formátumokat is.

Definíció a(z) wavewidget.cc fájl 72. sorában.

Hivatkozások WaveFile::close(), WaveFile::isOpen(), WaveFile::length(), lengthChanged(), MSECS() és WaveFile::open().

void WaveWidget::mousePressEvent QMouseEvent *  e  )  [protected]
 

A widgetre érkező egérklikkeket kezeli.

Balklikk állítja be a kezdőpontot, jobb klikk a végpontot. A hullám vége utáni klikkeléseket és a kezdőpont előtti jobbklikkeket figyelmen kívül hagyja. Végpont utáni balklikk a végpontot a klikkelés helye után 2 másodperccel későbbre állítja, illetve a hullám végére, ha az rövidebb.

Paraméterek:
e a kezelendő egéresemény

Definíció a(z) wavewidget.cc fájl 175. sorában.

Hivatkozások endTimeChanged(), WaveFile::length() és startTimeChanged().

void WaveWidget::paintEvent QPaintEvent *   )  [protected]
 

Kirajzolja a widgetet.

Ha a WHITE_LINE definiált, akkor lejátszás közben kirajzol egy fehér vonalat az aktuális lejátszási pozíciónál.

Definíció a(z) wavewidget.cc fájl 200. sorában.

Hivatkozások WaveFile::getDispBuffer(), WaveFile::isOpen(), MSECS() és QTIME_MS().

void WaveWidget::playSelected  )  [slot]
 

Lejátsza a kiválasztott intervallumot.

Megnyitja és beállítja a PCM eszközt, majd felkészíti a lejátszásra és elindít egy PlayThread objektumot. Ha a WHITE_LINE definiált, akkor elindít egy időzítőt is, ami újra és újra meghívja az újrarajzolást minden PAINT_FREQ ezredmásodpercekben.

Tennivaló:
Ha épp megy egy lejátszás, akkor azt le kéne állítania és le kéne játszania az aktuálisat.

Hiba:
Az újrarajzolás gyakori hívása néha "async reply error"-t eredményez, ami lefagyáshoz vezet.

Ha a PCM eszköz blokkolt, a program lefagy egészen addig, amíg elérhető nem lesz, ahelyett, hogy kiírna egy hibaüzenetet.

Definíció a(z) wavewidget.cc fájl 261. sorában.

Hivatkozások WaveFormat::access, WaveFormat::channels, WaveFormat::format, WaveFile::getPlayBuffer(), WaveFile::getPlayBufferSize(), PlayThread::initThread(), PlayThread::loadData(), PAINT_FREQ, WaveFormat::rate és WaveFile::waveFormat().

void WaveWidget::positionChanged int  pos  )  [signal]
 

Értesíti a SubTimerWnd -t a hullám görgetéséről.

Paraméterek:
pos a baloldal új kezdőpontja másodpercekben

Hivatkozások: scrollTo().

void WaveWidget::scrollTo int  start  )  [slot]
 

A megadott időhöz állítja a widgetet.

Újrarajzolja a widgetet úgy, hogy a start időpont legyen a baloldalon. Ha a hullám rövidebb, akkor a legvégét rajzolja ki.

Paraméterek:
start a baloldal új kezdőpontja másodpercekben

Definíció a(z) wavewidget.cc fájl 147. sorában.

Hivatkozások WaveFile::isOpen(), WaveFile::length(), MSECS(), positionChanged(), QTIME_MS(), QTIME_S() és SECS().

void WaveWidget::setEndTime QTime  t  ) 
 

Beállítja a végpontot és újrarazolja a widgetet.

Paraméterek:
t az új végpont

Definíció a(z) wavewidget.cc fájl 113. sorában.

void WaveWidget::setStartTime QTime  t  ) 
 

Beállítja a kezdőpontot és újrarajzolja a widgetet.

Paraméterek:
t az új kezdőpont

Definíció a(z) wavewidget.cc fájl 107. sorában.

void WaveWidget::setXZoom int  zoom  )  [slot]
 

Beállítja a hullám X felbontását.

Betölti az új kirajzoláshoz szükséges adatokat a WaveFile::changeRes metódus segítségével, és hozzáállítja a görgetősávot.

Paraméterek:
zoom az új X felbontás

Definíció a(z) wavewidget.cc fájl 129. sorában.

Hivatkozások WaveFile::changeRes(), WaveFile::length(), lengthChanged(), MAX_PIXPERSEC, MSECS() és SECS().

void WaveWidget::setYZoom int  zoom  )  [slot]
 

Beállítja a hullám Y nagyítását.

Paraméterek:
zoom az új Y nagyítás

Definíció a(z) wavewidget.cc fájl 141. sorában.

QTime WaveWidget::startTime  )  const
 

Megadja az aktuális kezdőpontot.

Visszatérési érték:
Az aktuális kezdőpontja a kiválasztott intervallumnak.

Definíció a(z) wavewidget.cc fájl 119. sorában.

void WaveWidget::startTimeChanged QTime *  start  )  [signal]
 

Értesíti a SubTimerWnd -t a kezdőpont változásáról.

Paraméterek:
start az új kezdőpont

Hivatkozások: mousePressEvent().

void WaveWidget::stopPlayback  )  [slot]
 

Leállítja a lejátszást.

Küld egy PlayThread::Stop eseményt a PlayThread objektumnak.

Definíció a(z) wavewidget.cc fájl 354. sorában.


Ez a dokumentáció az osztályról a következő fájlok alapján készült:
Projekt: SubTimer Készült: Wed Mar 23 22:06:57 2005 Készítette: doxygen 1.3.6