aboutsummaryrefslogtreecommitdiff
path: root/lib/base/rawfile.cpp
diff options
context:
space:
mode:
authorAndreas Oberritter <obi@opendreambox.org>2008-03-25 22:11:03 +0000
committerAndreas Oberritter <obi@opendreambox.org>2008-03-25 22:11:03 +0000
commita3b666437785e7b6b97fa9de31e82867cea407ea (patch)
treebf430fb822507acf95de38e70127018ac2dc9cdf /lib/base/rawfile.cpp
parentecd8882f14e3ad6ebfc27be40dc71d110fe278c1 (diff)
downloadenigma2-a3b666437785e7b6b97fa9de31e82867cea407ea.tar.gz
enigma2-a3b666437785e7b6b97fa9de31e82867cea407ea.zip
replace openFile() by two functions openFileCached() and openFileUncached(), to avoid casting FILE* to int
Diffstat (limited to 'lib/base/rawfile.cpp')
-rw-r--r--lib/base/rawfile.cpp29
1 files changed, 20 insertions, 9 deletions
diff --git a/lib/base/rawfile.cpp b/lib/base/rawfile.cpp
index 0d8a93b5..e444ba90 100644
--- a/lib/base/rawfile.cpp
+++ b/lib/base/rawfile.cpp
@@ -140,7 +140,7 @@ void eRawFile::scan()
{
if (!m_cached)
{
- int f = openFile(m_nrfiles);
+ int f = openFileUncached(m_nrfiles);
if (f < 0)
break;
if (!m_nrfiles)
@@ -149,7 +149,7 @@ void eRawFile::scan()
::close(f);
} else
{
- FILE *f = (FILE*)openFile(m_nrfiles);
+ FILE *f = openFileCached(m_nrfiles);
if (!f)
break;
::fseeko(f, 0, SEEK_END);
@@ -176,9 +176,9 @@ int eRawFile::switchOffset(off_t off)
// eDebug("-> %d", filenr);
close();
if (!m_cached)
- m_fd = openFile(filenr);
+ m_fd = openFileUncached(filenr);
else
- m_file = (FILE*)openFile(filenr);
+ m_file = openFileCached(filenr);
m_last_offset = m_base_offset = m_splitsize * filenr;
m_current_file = filenr;
}
@@ -201,7 +201,8 @@ int eRawFile::switchOffset(off_t off)
}
}
-int eRawFile::openFile(int nr)
+/* m_cached */
+FILE *eRawFile::openFileCached(int nr)
{
std::string filename = m_basename;
if (nr)
@@ -210,8 +211,18 @@ int eRawFile::openFile(int nr)
snprintf(suffix, 5, ".%03d", nr);
filename += suffix;
}
- if (!m_cached)
- return ::open(filename.c_str(), O_RDONLY | O_LARGEFILE);
- else
- return (int)::fopen64(filename.c_str(), "rb");
+ return ::fopen64(filename.c_str(), "rb");
+}
+
+/* !m_cached */
+int eRawFile::openFileUncached(int nr)
+{
+ std::string filename = m_basename;
+ if (nr)
+ {
+ char suffix[5];
+ snprintf(suffix, 5, ".%03d", nr);
+ filename += suffix;
+ }
+ return ::open(filename.c_str(), O_RDONLY | O_LARGEFILE);
}