diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-01-17 00:21:01 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-01-17 00:21:01 +0000 |
| commit | a2c5f9998376a5877aef36e410921908ab8605ba (patch) | |
| tree | 2a8a68d9d2151850cf33f3269875f5342f7579c6 /lib/base/filepush.cpp | |
| parent | 03582d8351bdcbbb1482d937e3d03667ff8d63b8 (diff) | |
| download | enigma2-a2c5f9998376a5877aef36e410921908ab8605ba.tar.gz enigma2-a2c5f9998376a5877aef36e410921908ab8605ba.zip | |
filepush: do not loop anymore on eof, but signal an event
Diffstat (limited to 'lib/base/filepush.cpp')
| -rw-r--r-- | lib/base/filepush.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/base/filepush.cpp b/lib/base/filepush.cpp index cb22ea1b..7ab8c0d3 100644 --- a/lib/base/filepush.cpp +++ b/lib/base/filepush.cpp @@ -4,10 +4,11 @@ #include <errno.h> #include <fcntl.h> -eFilePushThread::eFilePushThread() +eFilePushThread::eFilePushThread(): m_messagepump(eApp, 0) { m_stop = 0; flush(); + CONNECT(m_messagepump.recv_msg, eFilePushThread::recvEvent); } static void signal_handler(int x) @@ -65,12 +66,16 @@ void eFilePushThread::thread() } if (m_buf_end == 0) { + sendEvent(evtEOF); + +#if 0 eDebug("FILEPUSH: end-of-file! (currently unhandled)"); if (!lseek(m_fd_source, 0, SEEK_SET)) { eDebug("(looping)"); continue; } +#endif break; } // printf("FILEPUSH: read %d bytes\n", m_buf_end); @@ -114,3 +119,13 @@ void eFilePushThread::flush() m_buf_start = m_buf_end = 0; } + +void eFilePushThread::sendEvent(int evt) +{ + m_messagepump.send(evt); +} + +void eFilePushThread::recvEvent(const int &evt) +{ + m_event(evt); +} |
