diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | e2de64d6f1beb9e492daf5b886e19933c1fa41dd (patch) | |
tree | 9047cf9e6b5c43878d5bf82660adae77ceee097a /mpeglib/lib/output/audioTime.cpp | |
download | tdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.tar.gz tdemultimedia-e2de64d6f1beb9e492daf5b886e19933c1fa41dd.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdemultimedia@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'mpeglib/lib/output/audioTime.cpp')
-rw-r--r-- | mpeglib/lib/output/audioTime.cpp | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/mpeglib/lib/output/audioTime.cpp b/mpeglib/lib/output/audioTime.cpp new file mode 100644 index 00000000..f4ed2e9c --- /dev/null +++ b/mpeglib/lib/output/audioTime.cpp @@ -0,0 +1,154 @@ +/* + defines the format of an audio stream + Copyright (C) 1999 Martin Vogt + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Library General Public License as published by + the Free Software Foundation. + + For more information look at the file COPYRIGHT in this package + + */ + + +#include "audioTime.h" + +#include <iostream> + +using namespace std; + + +AudioTime::AudioTime(){ + time=0.0; +} + + +AudioTime::~AudioTime() { +} + + +void AudioTime::setFormat(int stereo,int samplesize,int speed,int sign, int bigendian) { + setStereo(stereo); + setSampleSize(samplesize); + setSpeed(speed); + setSign(sign); + setBigendian(bigendian); +} + + +int AudioTime::getStereo() { + return stereo; +} + + +int AudioTime::getSampleSize() { + return samplesize; +} + + +int AudioTime::getSpeed() { + return speed; +} + +int AudioTime::getSign() { + return _sign; +} + +int AudioTime::getBigendian() { + return _bigendian; +} + +void AudioTime::setStereo(int stereo) { + this->stereo=stereo; +} + + +void AudioTime::setSampleSize(int samplesize) { + this->samplesize=samplesize; +} + + +void AudioTime::setSpeed(int speed) { + this->speed=speed; +} + +void AudioTime::setSign(int sign) { + this->_sign=sign; +} + +void AudioTime::setBigendian(int bigendian) { + this->_bigendian = bigendian; +} + +float AudioTime::getTime() { + return time; +} + + +void AudioTime::setTime(float time) { + this->time=time; +} + + +void AudioTime::forwardTime(int bytes){ + time+=calculateTime(bytes); +} + + +float AudioTime::calculateTime(int bytes) { + float back=0; + + bytes=bytes/(samplesize/8); + if (stereo==1) { + bytes=bytes/2; + } + if (speed != 0) { + back=(float)bytes/(float)speed; + } + return back; +} + + +/** + How much byte we need for time usecs? +*/ +int AudioTime::calculateBytes(float time) { + float back=time; + + if (speed != 0) { + back=back*(float)speed; + } + back=back*(float)(samplesize/8); + if (stereo==1) { + back=back*2.0; + } + return (int)back; +} + + + +void AudioTime::sleepWrite(int size) { + timeval_t time; + float timeLength=calculateTime(size); + time.tv_sec=(long)timeLength; + time.tv_usec=(long)(1000000*(timeLength-time.tv_sec)); + TimeWrapper::usleep(&time); +} + + +void AudioTime::print() { + cout << "AudioTime-begin-"<<endl; + cout << "stereo:"<<getStereo()<<" sampleSize:"<<getSampleSize() + << " speed: "<<getSpeed()<<endl; + + cout << "AudioTime-end-"<<endl; + +} + + +void AudioTime::copyTo(AudioTime* dest) { + dest->setStereo(getStereo()); + dest->setSampleSize(getSampleSize()); + dest->setSpeed(getSpeed()); +} + |