AFeed::AFeed(Callback* tcb)
: cb(*tcb)
{
- delayTime.tv_sec = 0;
- delayTime.tv_nsec = 100000000;
audioEnabled = 1;
}
else
{
// Log::getInstance()->log("AFeed", Log::DEBUG, "No data delay");
- nanosleep(&delayTime, NULL);
+ MILLISLEEP(100);
}
}
else
{
Demuxer::getInstance()->flushAudio();
- usleep(100000);
-
- // FIXME, no delay here now
-// if (demux_get_audio(demuxHandle, buffer, 1000) != 1000) nanosleep(&delayTime, NULL);
+ MILLISLEEP(100);
}
}
}
int audioEnabled;
int fd;
Callback& cb;
- struct timespec delayTime;
-
};
#endif
AFeedR::AFeedR(Callback* tcb, Stream* tstream)
: cb(*tcb), stream(*tstream)
{
- delayTime.tv_sec = 0;
- delayTime.tv_nsec = 100000000;
}
int AFeedR::init(int tfd)
}
else
{
- nanosleep(&delayTime, NULL);
+ MILLISLEEP(100);
}
}
}
int fd;
Callback& cb;
Stream& stream;
- struct timespec delayTime;
-
};
#endif
ULLONG htonll(ULLONG a);
ULLONG ntohll(ULLONG a);
+void MILLISLEEP(ULONG a);
#ifdef WIN32
#define SNPRINTF _snprintf
#define VSNPRINTF _vsnprintf
#define STRCASECMP stricmp
#define STRCASESTR StrStrI
+#define STRTOULL _strtoui64
#else
#define SNPRINTF snprintf
#define VSNPRINTF vsnprintf
#define STRCASECMP strcasecmp
#define STRCASESTR strcasestr
+#define STRTOULL strtoull
#endif
#endif
return b;
#endif
}
+
+void MILLISLEEP(ULONG a)
+{
+#ifndef WIN32
+ struct timespec delayTime;
+ delayTime.tv_sec = a / 1000;
+ delayTime.tv_nsec = (a % 1000) * 1000000;
+ printf("%lu %lu\n", delayTime.tv_sec, delayTime.tv_nsec);
+ nanosleep(&delayTime, NULL);
+#else
+ Sleep(a);
+#endif
+}
void VConnect::threadMethod()
{
- struct timespec ts;
+ ULONG delay = 0;
int success;
irun = 1;
logger->log("Command", Log::DEBUG, "Connected ok, doing login");
success = vdr->doLogin();
- if (success)
- {
- ts.tv_sec = 0;
- ts.tv_nsec = 000000000;
- }
- else
+ if (!success)
{
vdr->disconnect();
setOneLiner(tr("Login failed"));
- ts.tv_sec = 3;
- ts.tv_nsec = 0;
+ delay = 3000;
}
}
else
{
setOneLiner(tr("Connection failed"));
- ts.tv_sec = 3;
- ts.tv_nsec = 0;
+ delay = 3000;
}
draw();
viewman->updateView(this);
- nanosleep(&ts, NULL);
+ MILLISLEEP(delay);
} while(!success);
char* resumeString = configLoad("ResumeData", fileName);
if (!resumeString) return 0;
- ULLONG toReturn = strtoull(resumeString, NULL, 10);
+ ULLONG toReturn = STRTOULL(resumeString, NULL, 10);
delete[] resumeString;
return toReturn;
}
VFeed::VFeed(Callback* tcb)
: cb(*tcb)
{
- delayTime.tv_sec = 0;
- delayTime.tv_nsec = 100000000;
}
int VFeed::init(int tfd)
else
{
// Log::getInstance()->log("VFeed", Log::DEBUG, "No data delay");
- nanosleep(&delayTime, NULL);
+ MILLISLEEP(100);
}
}
}
void threadPostStopCleanup() {};
int fd;
Callback& cb;
- struct timespec delayTime;
-
};
#endif