4 * Created on: 2013. 9. 12.
15 #include "ePreDefine.h"
16 #include "eFilePumpThread.h"
17 //-------------------------------------------------------------------------------
21 //#define LOG(X,...) { do{}while(0); }
24 eFilePumpThread::eFilePumpThread(int aDeviceFd, std::string aFileName)
25 : mDeviceFd(aDeviceFd), mFileName(aFileName), mTermFlag(false), uThread("FilePumpThread", TYPE_DETACHABLE)
28 //-------------------------------------------------------------------------------
30 eFilePumpThread::~eFilePumpThread()
33 //-------------------------------------------------------------------------------
35 void eFilePumpThread::Run()
38 unsigned char buffer[BUFFER_SIZE];
39 FILE* mediafilefd = fopen(mFileName.c_str(), "rb");
40 struct pollfd pollevt;
42 pollevt.fd = mDeviceFd;
43 pollevt.events = POLLOUT;
48 rc = poll((struct pollfd*)&pollevt, 1, 1000);
50 if (pollevt.revents & POLLOUT) {
51 rc = fread(buffer, 1, BUFFER_SIZE, mediafilefd);
54 LOG("%d byte write.", rc);
56 rc = write(mDeviceFd, buffer, rc);
62 //-------------------------------------------------------------------------------
64 void eFilePumpThread::Terminate()
68 //-------------------------------------------------------------------------------