Browse Source

change large file support to more portable

It is not portable to use lseek64/off64_t directly.
Change to set large file support macro and use usual names.

Signed-off-by: OBATA Akio <obache@wizdas.com>
pull/2/head
OBATA Akio 3 years ago
parent
commit
12ef306abc
  1. 1
      configure.in.in
  2. 2
      kttsd/players/alsaplayer/Makefile.am
  3. 18
      kttsd/players/alsaplayer/alsaplayer.cpp
  4. 8
      kttsd/players/alsaplayer/alsaplayer.h

1
configure.in.in

@ -2,6 +2,7 @@
AM_INIT_AUTOMAKE(tdeaccessibility,1.0.0)
KDE_ENABLE_HIDDEN_VISIBILITY
KDE_CHECK_LARGEFILE
AC_CHECK_SETENV
AC_CHECK_UNSETENV

2
kttsd/players/alsaplayer/Makefile.am

@ -2,7 +2,7 @@
INCLUDES = \
-I$(top_srcdir)/kttsd/libkttsd -I$(top_builddir)/kttsd/libkttsd \
$(all_includes)
KDE_CXXFLAGS = -D_LARGEFILE64_SOURCE -D_GNU_SOURCE
KDE_CXXFLAGS = -D_GNU_SOURCE
# Let automoc handle all of the metsource files (moc).
METASOURCES = AUTO

18
kttsd/players/alsaplayer/alsaplayer.cpp

@ -1254,7 +1254,7 @@ void AlsaPlayer::voc_play(int fd, int ofs, const char* name)
char was_extended = 0, output = 0;
u_short *sp, repeat = 0;
size_t silence;
off64_t filepos = 0;
off_t filepos = 0;
#define COUNT(x) nextblock -= x; in_buffer -= x; data += x
#define COUNT1(x) in_buffer -= x; data += x
@ -1385,7 +1385,7 @@ void AlsaPlayer::voc_play(int fd, int ofs, const char* name)
MSG("Repeat loop %d times", repeat);
#endif
if (filepos >= 0) { /* if < 0, one seek fails, why test another */
if ((filepos = lseek64(fd, 0, 1)) < 0) {
if ((filepos = lseek(fd, 0, 1)) < 0) {
ERR("can't play loops; %s isn't seekable", name);
repeat = 0;
} else {
@ -1407,7 +1407,7 @@ void AlsaPlayer::voc_play(int fd, int ofs, const char* name)
else
MSG("Neverending loop");
#endif
lseek64(fd, filepos, 0);
lseek(fd, filepos, 0);
in_buffer = 0; /* clear the buffer */
goto Fill_the_buffer;
}
@ -1471,15 +1471,15 @@ void AlsaPlayer::init_raw_data(void)
}
/* calculate the data count to read from/to dsp */
off64_t AlsaPlayer::calc_count(void)
off_t AlsaPlayer::calc_count(void)
{
off64_t count;
off_t count;
if (timelimit == 0) {
count = pbrec_count;
} else {
count = snd_pcm_format_size(hwdata.format, hwdata.rate * hwdata.channels);
count *= (off64_t)timelimit;
count *= (off_t)timelimit;
}
return count < pbrec_count ? count : pbrec_count;
}
@ -1505,11 +1505,11 @@ void AlsaPlayer::header(int /*rtype*/, const char* /*name*/)
/* playing raw data */
void AlsaPlayer::playback_go(int fd, size_t loaded, off64_t count, int rtype, const char *name)
void AlsaPlayer::playback_go(int fd, size_t loaded, off_t count, int rtype, const char *name)
{
int l, r;
off64_t written = 0;
off64_t c;
off_t written = 0;
off_t c;
if (m_debugLevel >= 1) header(rtype, name);
set_params();

8
kttsd/players/alsaplayer/alsaplayer.h

@ -124,9 +124,9 @@ private:
void voc_pcm_flush(void);
void voc_play(int fd, int ofs, const char *name);
void init_raw_data(void);
off64_t calc_count(void);
off_t calc_count(void);
void header(int rtype, const char *name);
void playback_go(int fd, size_t loaded, off64_t count, int rtype, const char *name);
void playback_go(int fd, size_t loaded, off_t count, int rtype, const char *name);
void playback(int fd);
KURL m_currentURL;
@ -168,8 +168,8 @@ private:
size_t chunk_bytes;
snd_output_t *log;
int fd;
off64_t pbrec_count;
off64_t fdcount;
off_t pbrec_count;
off_t fdcount;
int vocmajor;
int vocminor;

Loading…
Cancel
Save