diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2009-12-06 12:57:45 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2009-12-06 12:57:45 +0100 |
commit | 6a208294bef44f588e067383aa2e35af1aa23a16 (patch) | |
tree | 463f2aa875c26a6d0df507c2559a9bb821111082 | |
parent | 1b973fd8ebb0a5dca7c82fac0651c33ecb7edd50 (diff) | |
download | vdr-6a208294bef44f588e067383aa2e35af1aa23a16.tar.gz vdr-6a208294bef44f588e067383aa2e35af1aa23a16.tar.bz2 |
Several code modifications to avoid compiler warnings
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 3 | ||||
-rw-r--r-- | PLUGINS/src/hello/HISTORY | 6 | ||||
-rw-r--r-- | PLUGINS/src/hello/hello.c | 6 | ||||
-rw-r--r-- | PLUGINS/src/pictures/HISTORY | 4 | ||||
-rw-r--r-- | PLUGINS/src/pictures/pictures.c | 6 | ||||
-rw-r--r-- | channels.c | 21 | ||||
-rw-r--r-- | channels.h | 8 | ||||
-rw-r--r-- | ci.c | 15 | ||||
-rw-r--r-- | config.c | 4 | ||||
-rw-r--r-- | device.c | 4 | ||||
-rw-r--r-- | diseqc.c | 6 | ||||
-rw-r--r-- | dvbdevice.c | 7 | ||||
-rw-r--r-- | dvbplayer.c | 4 | ||||
-rw-r--r-- | dvbspu.c | 4 | ||||
-rw-r--r-- | dvbspu.h | 5 | ||||
-rw-r--r-- | dvbsubtitle.c | 15 | ||||
-rw-r--r-- | eit.c | 3 | ||||
-rw-r--r-- | epg.c | 7 | ||||
-rw-r--r-- | font.c | 3 | ||||
-rw-r--r-- | libsi/si.c | 3 | ||||
-rw-r--r-- | libsi/si.h | 4 | ||||
-rw-r--r-- | menu.c | 13 | ||||
-rw-r--r-- | menuitems.c | 7 | ||||
-rw-r--r-- | nit.c | 3 | ||||
-rw-r--r-- | osd.c | 8 | ||||
-rw-r--r-- | pat.c | 4 | ||||
-rw-r--r-- | recorder.c | 4 | ||||
-rw-r--r-- | recording.c | 30 | ||||
-rw-r--r-- | recording.h | 8 | ||||
-rw-r--r-- | remote.c | 8 | ||||
-rw-r--r-- | remux.c | 3 | ||||
-rw-r--r-- | sdt.c | 3 | ||||
-rw-r--r-- | skinsttng.c | 3 | ||||
-rw-r--r-- | tools.c | 5 | ||||
-rw-r--r-- | tools.h | 14 | ||||
-rw-r--r-- | vdr.c | 4 |
37 files changed, 166 insertions, 90 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 07687752..7cd503e2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2459,6 +2459,7 @@ Michael Nork <mnork0@gmx.net> Winfried Köhler <w_koehl@gmx.de> for fixing wrong value for TableIdBAT in libsi/si.h + for making several code modifications to avoid compiler warnings Igor M. Liplianin <liplianin@tut.by> for a patch that was used to convert VDR to the S2API driver API @@ -6197,7 +6197,7 @@ Video Disk Recorder Revision History - Fixed the default value for "Pause key handling" in the MANUAL (reported by Diego Pierotto). -2009-12-05: Version 1.7.11 +2009-12-06: Version 1.7.11 - Fixed resetting the file size when regenerating the index file. - The new function cDevice::PatPmtParser() can be used in derived devices to access @@ -6209,3 +6209,4 @@ Video Disk Recorder Revision History - The 'sky' plugin is no longer part of the VDR source. - Improved SPU handling on devices with limited OSD capabilities (thanks to Matthieu Castet). +- Several code modifications to avoid compiler warnings (thanks to Winfried Köhler). diff --git a/PLUGINS/src/hello/HISTORY b/PLUGINS/src/hello/HISTORY index 14e78f6e..9adeab9e 100644 --- a/PLUGINS/src/hello/HISTORY +++ b/PLUGINS/src/hello/HISTORY @@ -63,6 +63,10 @@ VDR Plugin 'hello' Revision History - Updated the Croatian language texts (thanks to Adrian Caval). -2008-009-06 Version 0.2.3 +2008-09-06: Version 0.2.3 - Updated the Turkish language texts (thanks to Oktay Yolgeçen). + +2009-12-06: Version 0.2.4 + +- Several code modifications to avoid compiler warnings (thanks to Winfried Köhler). diff --git a/PLUGINS/src/hello/hello.c b/PLUGINS/src/hello/hello.c index a9a82cc6..32a74e3f 100644 --- a/PLUGINS/src/hello/hello.c +++ b/PLUGINS/src/hello/hello.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: hello.c 2.1 2008/09/06 14:30:00 kls Exp $ + * $Id: hello.c 2.2 2009/12/06 12:30:15 kls Exp $ */ #include <getopt.h> @@ -12,7 +12,7 @@ #include <vdr/interface.h> #include <vdr/plugin.h> -static const char *VERSION = "0.2.3"; +static const char *VERSION = "0.2.4"; static const char *DESCRIPTION = trNOOP("A friendly greeting"); static const char *MAINMENUENTRY = trNOOP("Hello"); @@ -96,7 +96,7 @@ bool cPluginHello::ProcessArgs(int argc, char *argv[]) static struct option long_options[] = { { "aaa", required_argument, NULL, 'a' }, { "bbb", no_argument, NULL, 'b' }, - { NULL } + { NULL, no_argument, NULL, 0 } }; int c; diff --git a/PLUGINS/src/pictures/HISTORY b/PLUGINS/src/pictures/HISTORY index fdc58e1c..e5cee7a4 100644 --- a/PLUGINS/src/pictures/HISTORY +++ b/PLUGINS/src/pictures/HISTORY @@ -33,3 +33,7 @@ VDR Plugin 'pictures' Revision History 2008-03-14: Version 0.0.7 - Added Russian translations (thanks to Alexander Gross). + +2009-12-06: Version 0.0.8 + +- Several code modifications to avoid compiler warnings (thanks to Winfried Köhler). diff --git a/PLUGINS/src/pictures/pictures.c b/PLUGINS/src/pictures/pictures.c index 6130f195..9de68890 100644 --- a/PLUGINS/src/pictures/pictures.c +++ b/PLUGINS/src/pictures/pictures.c @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: pictures.c 1.7 2008/03/14 12:57:19 kls Exp $ + * $Id: pictures.c 2.1 2009/12/06 12:30:21 kls Exp $ */ #include <getopt.h> @@ -11,7 +11,7 @@ #include "menu.h" #include "player.h" -static const char *VERSION = "0.0.7"; +static const char *VERSION = "0.0.8"; static const char *DESCRIPTION = trNOOP("A simple picture viewer"); static const char *MAINMENUENTRY = trNOOP("Pictures"); @@ -82,7 +82,7 @@ bool cPluginPictures::ProcessArgs(int argc, char *argv[]) // Implement command line argument processing here if applicable. static struct option long_options[] = { { "dir", required_argument, NULL, 'd' }, - { NULL } + { NULL, no_argument, NULL, 0 } }; int c; @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: channels.c 2.8 2009/08/30 11:25:50 kls Exp $ + * $Id: channels.c 2.9 2009/12/05 15:28:32 kls Exp $ */ #include "channels.h" @@ -24,14 +24,14 @@ const tChannelParameterMap InversionValues[] = { { 0, INVERSION_OFF, trNOOP("off") }, { 1, INVERSION_ON, trNOOP("on") }, { 999, INVERSION_AUTO, trNOOP("auto") }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap BandwidthValues[] = { { 6, 6000000, "6 MHz" }, { 7, 7000000, "7 MHz" }, { 8, 8000000, "8 MHz" }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap CoderateValues[] = { @@ -47,7 +47,7 @@ const tChannelParameterMap CoderateValues[] = { { 89, FEC_8_9, "8/9" }, { 910, FEC_9_10, "9/10" }, { 999, FEC_AUTO, trNOOP("auto") }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap ModulationValues[] = { @@ -62,20 +62,20 @@ const tChannelParameterMap ModulationValues[] = { { 10, VSB_8, "VSB8" }, { 11, VSB_16, "VSB16" }, { 998, QAM_AUTO, "QAMAUTO" }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap SystemValues[] = { { 0, SYS_DVBS, "DVB-S" }, { 1, SYS_DVBS2, "DVB-S2" }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap TransmissionValues[] = { { 2, TRANSMISSION_MODE_2K, "2K" }, { 8, TRANSMISSION_MODE_8K, "8K" }, { 999, TRANSMISSION_MODE_AUTO, trNOOP("auto") }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap GuardValues[] = { @@ -84,7 +84,7 @@ const tChannelParameterMap GuardValues[] = { { 16, GUARD_INTERVAL_1_16, "1/16" }, { 32, GUARD_INTERVAL_1_32, "1/32" }, { 999, GUARD_INTERVAL_AUTO, trNOOP("auto") }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap HierarchyValues[] = { @@ -93,7 +93,7 @@ const tChannelParameterMap HierarchyValues[] = { { 2, HIERARCHY_2, "2" }, { 4, HIERARCHY_4, "4" }, { 999, HIERARCHY_AUTO, trNOOP("auto") }, - { -1 } + { -1, 0, NULL } }; const tChannelParameterMap RollOffValues[] = { @@ -101,7 +101,7 @@ const tChannelParameterMap RollOffValues[] = { { 20, ROLLOFF_20, "0.20" }, { 25, ROLLOFF_25, "0.25" }, { 35, ROLLOFF_35, "0.35" }, - { -1 } + { -1, 0, NULL } }; int UserIndex(int Value, const tChannelParameterMap *Map) @@ -259,6 +259,7 @@ int cChannel::Transponder(int Frequency, char Polarization) case 'v': Frequency += 200000; break; case 'l': Frequency += 300000; break; case 'r': Frequency += 400000; break; + default: esyslog("ERROR: invalid value for Polarization '%c'", Polarization); } return Frequency; } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: channels.h 2.6 2009/08/30 11:05:54 kls Exp $ + * $Id: channels.h 2.7 2009/12/06 12:57:45 kls Exp $ */ #ifndef __CHANNELS_H @@ -188,9 +188,9 @@ public: const char *Alang(int i) const { return (0 <= i && i < MAXAPIDS) ? alangs[i] : ""; } const char *Dlang(int i) const { return (0 <= i && i < MAXDPIDS) ? dlangs[i] : ""; } const char *Slang(int i) const { return (0 <= i && i < MAXSPIDS) ? slangs[i] : ""; } - uchar SubtitlingType(int i) const { return (0 <= i && i < MAXSPIDS) ? subtitlingTypes[i] : 0; } - uint16_t CompositionPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? compositionPageIds[i] : 0; } - uint16_t AncillaryPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? ancillaryPageIds[i] : 0; } + uchar SubtitlingType(int i) const { return (0 <= i && i < MAXSPIDS) ? subtitlingTypes[i] : uchar(0); } + uint16_t CompositionPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? compositionPageIds[i] : uint16_t(0); } + uint16_t AncillaryPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? ancillaryPageIds[i] : uint16_t(0); } int Tpid(void) const { return tpid; } const int *Caids(void) const { return caids; } int Ca(int Index = 0) const { return Index < MAXCAIDS ? caids[Index] : 0; } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.c 2.3 2009/08/16 13:21:07 kls Exp $ + * $Id: ci.c 2.4 2009/12/05 15:51:12 kls Exp $ */ #include "ci.h" @@ -1424,6 +1424,15 @@ bool cCiTransportConnection::Process(cTPDU *TPDU) SendTPDU(T_DTC_REPLY); state = stIDLE; return true; + case T_RCV: + case T_CREATE_TC: + case T_CTC_REPLY: + case T_DTC_REPLY: + case T_NEW_TC: + case T_TC_ERROR: + break; + default: + esyslog("ERROR: unknown TPDU tag: 0x%02X (%s)", TPDU->Tag(), __FUNCTION__); } } else if (timer.TimedOut()) @@ -1443,6 +1452,8 @@ bool cCiTransportConnection::Process(cTPDU *TPDU) state = stIDLE; } return true; + default: + esyslog("ERROR: unknown state: %d (%s)", state, __FUNCTION__); } return true; } @@ -1668,6 +1679,8 @@ void cCamSlot::Process(cTPDU *TPDU) NewConnection(); resendPmt = caProgramList.Count() > 0; break; + default: + esyslog("ERROR: unknown module status %d (%s)", ms, __FUNCTION__); } lastModuleStatus = ms; } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.c 2.5 2009/06/13 10:25:05 kls Exp $ + * $Id: config.c 2.6 2009/12/05 15:30:30 kls Exp $ */ #include "config.h" @@ -76,7 +76,7 @@ const char *cCommand::Execute(const char *Parameters) while ((c = fgetc(p)) != EOF) { if (l % 20 == 0) result = (char *)realloc(result, l + 21); - result[l++] = c; + result[l++] = char(c); } if (result) result[l] = 0; @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.c 2.26 2009/11/22 13:19:03 kls Exp $ + * $Id: device.c 2.27 2009/12/05 15:52:54 kls Exp $ */ #include "device.h" @@ -371,6 +371,7 @@ void cDevice::SetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat) case vdfCenterCutOut: spuDecoder->setScaleMode(cSpuDecoder::eSpuNormal); break; + default: esyslog("ERROR: invalid value for VideoDisplayFormat '%d'", VideoDisplayFormat); } } } @@ -611,6 +612,7 @@ bool cDevice::SwitchChannel(const cChannel *Channel, bool LiveView) case scrNoTransfer: Skins.Message(mtError, tr("Can't start Transfer Mode!")); return false; case scrFailed: break; // loop will retry + default: esyslog("ERROR: invalid return value from SetChannel"); } esyslog("retrying"); } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: diseqc.c 1.6 2008/02/10 14:09:27 kls Exp $ + * $Id: diseqc.c 2.1 2009/12/05 15:57:02 kls Exp $ */ #include "diseqc.h" @@ -36,7 +36,7 @@ bool cDiseqc::Parse(const char *s) if (4 <= fields && fields <= 5) { source = cSource::FromString(sourcebuf); if (Sources.Get(source)) { - polarization = toupper(polarization); + polarization = char(toupper(polarization)); if (polarization == 'V' || polarization == 'H' || polarization == 'L' || polarization == 'R') { parsing = true; char *CurrentAction = NULL; @@ -81,7 +81,7 @@ char *cDiseqc::Codes(char *s) errno = 0; int n = strtol(t, &p, 16); if (!errno && p != t && 0 <= n && n <= 255) { - codes[numCodes++] = n; + codes[numCodes++] = uchar(n); t = skipspace(p); } else { diff --git a/dvbdevice.c b/dvbdevice.c index dd425c8a..fe276489 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 2.21 2009/06/06 11:17:20 kls Exp $ + * $Id: dvbdevice.c 2.22 2009/12/05 16:02:11 kls Exp $ */ #include "dvbdevice.h" @@ -238,6 +238,7 @@ bool cDvbTuner::SetFrontend(void) } } break; + default: esyslog("ERROR: unknown diseqc command %d", da); } } diseqcCommands = diseqc->Commands(); @@ -383,6 +384,8 @@ void cDvbTuner::Action(void) lastTimeoutReport = 0; continue; } + break; + default: esyslog("ERROR: unknown tuner status %d", tunerStatus); } if (tunerStatus != tsTuned) @@ -720,6 +723,7 @@ void cDvbDevice::SetVideoDisplayFormat(eVideoDisplayFormat VideoDisplayFormat) case vdfCenterCutOut: CHECK(ioctl(fd_video, VIDEO_SET_DISPLAY_FORMAT, VIDEO_CENTER_CUT_OUT)); break; + default: esyslog("ERROR: unknown video display format %d", VideoDisplayFormat); } } } @@ -1179,6 +1183,7 @@ bool cDvbDevice::SetPlayMode(ePlayMode PlayMode) close(fd_audio); fd_video = fd_audio = -1; break; + default: esyslog("ERROR: unknown playmode %d", PlayMode); } playMode = PlayMode; return true; diff --git a/dvbplayer.c b/dvbplayer.c index 9f964620..f4e8dca1 100644 --- a/dvbplayer.c +++ b/dvbplayer.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbplayer.c 2.17 2009/05/31 14:12:42 kls Exp $ + * $Id: dvbplayer.c 2.18 2009/12/05 16:04:04 kls Exp $ */ #include "dvbplayer.h" @@ -666,6 +666,7 @@ void cDvbPlayer::Forward(void) trickSpeed = NORMAL_SPEED; TrickSpeed(Setup.MultiSpeedMode ? -1 : -MAX_SPEEDS); break; + default: esyslog("ERROR: unknown playMode %d (%s)", playMode, __FUNCTION__); } } } @@ -717,6 +718,7 @@ void cDvbPlayer::Backward(void) TrickSpeed(Setup.MultiSpeedMode ? -1 : -MAX_SPEEDS); } break; + default: esyslog("ERROR: unknown playMode %d (%s)", playMode, __FUNCTION__); } } } @@ -8,7 +8,7 @@ * * parts of this file are derived from the OMS program. * - * $Id: dvbspu.c 2.3 2009/12/05 14:41:40 kls Exp $ + * $Id: dvbspu.c 2.4 2009/12/05 16:06:12 kls Exp $ */ #include "dvbspu.h" @@ -147,7 +147,7 @@ bool cDvbSpuBitmap::getMinSize(const aDvbSpuPalDescr paldescr, DEBUG("MinSize: (%d, %d) x (%d, %d)\n", size.x1, size.y1, size.x2, size.y2); if (size.x1 > size.x2 || size.y1 > size.y2) - return false; + return false; return ret; } @@ -8,7 +8,7 @@ * * parts of this file are derived from the OMS program. * - * $Id: dvbspu.h 2.2 2009/12/05 14:40:08 kls Exp $ + * $Id: dvbspu.h 2.3 2009/12/05 15:17:08 kls Exp $ */ #ifndef __DVBSPU_H @@ -197,8 +197,7 @@ inline uint32_t cDvbSpuPalette::yuv2rgb(uint32_t yuv_color) inline uint32_t cDvbSpuPalette::getColor(uint8_t idx, uint8_t trans) const { - uint8_t t = trans == 0x0f ? 0xff : trans << 4; - return palette[idx] | (t << 24); + return palette[idx] | (trans == 0x0f) ? 0xff000000 : (trans << 28); } #endif // __DVBSPU_H diff --git a/dvbsubtitle.c b/dvbsubtitle.c index cd77fde6..221523fd 100644 --- a/dvbsubtitle.c +++ b/dvbsubtitle.c @@ -7,7 +7,7 @@ * Original author: Marco Schlüßler <marco@lordzodiac.de> * With some input from the "subtitle plugin" by Pekka Virtanen <pekka.virtanen@sci.fi> * - * $Id: dvbsubtitle.c 2.2 2009/11/22 12:28:53 kls Exp $ + * $Id: dvbsubtitle.c 2.3 2009/12/05 16:11:54 kls Exp $ */ #include "dvbsubtitle.h" @@ -160,21 +160,22 @@ void cSubtitleObject::DecodeSubBlock(const uchar *Data, int Length, bool Even) ; break; case 0x20: //TODO - dbgobjects("sub block 2 to 4 map"); + dbgobjects("sub block 2 to 4 map\n"); index += 4; break; case 0x21: //TODO - dbgobjects("sub block 2 to 8 map"); + dbgobjects("sub block 2 to 8 map\n"); index += 4; break; case 0x22: //TODO - dbgobjects("sub block 4 to 8 map"); + dbgobjects("sub block 4 to 8 map\n"); index += 16; break; case 0xF0: x = 0; y += 2; break; + default: dbgobjects("unknown sub block %s %d\n", __FUNCTION__, __LINE__); } } } @@ -233,7 +234,7 @@ bool cSubtitleObject::Decode2BppCodeString(const uchar *Data, int &Index, int &x rl = 1; //color 0 else { code = Get2Bits(Data, Index); - switch (code & 0x3) { //switch_3 + switch (code & 3) { //switch_3 case 0: return false; case 1: @@ -247,6 +248,7 @@ bool cSubtitleObject::Decode2BppCodeString(const uchar *Data, int &Index, int &x rl = (Get2Bits(Data, Index) << 6) + (Get2Bits(Data, Index) << 4) + (Get2Bits(Data, Index) << 2) + Get2Bits(Data, Index) + 29; color = Get2Bits(Data, Index); break; + default: ; } } } @@ -283,6 +285,7 @@ bool cSubtitleObject::Decode4BppCodeString(const uchar *Data, int &Index, int &x rl = (Get4Bits(Data, Index) << 4) + Get4Bits(Data, Index) + 25; color = Get4Bits(Data, Index); break; + default: ; } } else { @@ -516,6 +519,7 @@ void cDvbSubtitlePage::SetState(int State) break; case 3: // reserved break; + default: dbgpages("unknown page state (%s %d)\n", __FUNCTION__, __LINE__); } } @@ -900,6 +904,7 @@ int cDvbSubtitleConverter::ExtractSegment(const uchar *Data, int Length, int64_t case 2: region->FillRegion((Data[6 + 9] & 0x0C) >> 2); break; case 4: region->FillRegion((Data[6 + 9] & 0xF0) >> 4); break; case 8: region->FillRegion(Data[6 + 8]); break; + default: dbgregions("unknown bpp %d (%s %d)\n", region->Bpp(), __FUNCTION__, __LINE__); } } for (int i = 6 + 10; i < segmentLength; i += 6) { @@ -8,7 +8,7 @@ * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>. * - * $Id: eit.c 2.6 2009/06/21 13:46:20 kls Exp $ + * $Id: eit.c 2.7 2009/12/05 16:13:22 kls Exp $ */ #include "eit.h" @@ -354,5 +354,6 @@ void cEitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length cTDT TDT(Data); } break; + default: ; } } @@ -7,7 +7,7 @@ * Original version (as used in VDR before 1.3.0) written by * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * - * $Id: epg.c 2.1 2008/05/01 14:53:55 kls Exp $ + * $Id: epg.c 2.2 2009/12/05 16:17:08 kls Exp $ */ #include "epg.h" @@ -603,6 +603,7 @@ void cEvent::FixEpgBugs(void) case 0x0F: p->description = strdup("HD 16:9"); break; case 0x0C: case 0x10: p->description = strdup("HD >16:9"); break; + default: ; } EpgBugFixStat(9, ChannelID()); } @@ -621,12 +622,13 @@ void cEvent::FixEpgBugs(void) if (!p->description) { switch (p->type) { case 0x05: p->description = strdup("Dolby Digital"); break; - // all others will just display the language + default: ; // all others will just display the language } EpgBugFixStat(11, ChannelID()); } } break; + default: ; } } } @@ -863,6 +865,7 @@ void cSchedule::Dump(FILE *f, const char *Prefix, eDumpMode DumpMode, time_t AtT p->Dump(f, Prefix); } break; + default: esyslog("ERROR: unknown DumpMode %d (%s %d)", DumpMode, __FUNCTION__, __LINE__); } fprintf(f, "%sc\n", Prefix); } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: font.c 2.2 2009/05/03 11:15:39 kls Exp $ + * $Id: font.c 2.3 2009/12/05 16:19:00 kls Exp $ */ #include "font.h" @@ -346,6 +346,7 @@ const cFont *cFont::GetFont(eDvbFont Font) case fontOsd: SetFont(Font, Setup.FontOsd, Setup.FontOsdSize); break; case fontSml: SetFont(Font, Setup.FontSml, Setup.FontSmlSize); break; case fontFix: SetFont(Font, Setup.FontFix, Setup.FontFixSize); break; + default: esyslog("ERROR: unknown Font %d (%s %d)", Font, __FUNCTION__, __LINE__); } } return fonts[Font]; @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: si.c 1.25 2008/03/05 17:00:55 kls Exp $ + * $Id: si.c 2.1 2009/12/05 16:20:12 kls Exp $ * * ***************************************************************************/ @@ -720,6 +720,7 @@ Descriptor *Descriptor::getDescriptor(CharArray da, DescriptorTagDomain domain, break; } break; + default: ; // unknown domain, nothing to do } d->setData(da); return d; @@ -6,7 +6,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: si.h 2.1 2008/09/06 12:44:06 kls Exp $ + * $Id: si.h 2.2 2009/12/06 11:37:35 kls Exp $ * * ***************************************************************************/ @@ -411,6 +411,8 @@ public: return data.FourBytes(index); case 8: return (SixtyFourBit(data.FourBytes(index)) << 32) | data.FourBytes(index+4); + default: + return 0; // just to avoid a compiler warning } return 0; // just to avoid a compiler warning } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 2.9 2009/06/21 09:56:06 kls Exp $ + * $Id: menu.c 2.10 2009/12/06 11:29:05 kls Exp $ */ #include "menu.h" @@ -1373,6 +1373,7 @@ eOSState cMenuSchedule::Number(void) case cMenuScheduleItem::ssmThisThis: PrepareScheduleThisThis(Event, Channel); break; case cMenuScheduleItem::ssmThisAll: PrepareScheduleThisAll(Event, Channel); break; case cMenuScheduleItem::ssmAllAll: PrepareScheduleAllAll(Event, Channel); break; + default: esyslog("ERROR: unknown SortMode %d (%s %d)", cMenuScheduleItem::SortMode(), __FUNCTION__, __LINE__); } CurrentItem = (cMenuScheduleItem *)Get(Current()); Sort(); @@ -1897,6 +1898,7 @@ void cMenuRecordings::SetHelpKeys(void) case 1: SetHelp(tr("Button$Open")); break; case 2: case 3: SetHelp(RecordingCommands.Count() ? tr("Commands") : tr("Button$Play"), tr("Button$Rewind"), tr("Button$Delete"), NewHelpKeys == 3 ? tr("Button$Info") : NULL); + default: ; } helpKeys = NewHelpKeys; } @@ -2242,18 +2244,18 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key) Utf8Strn0Cpy(data.OSDTheme, themes.Name(themeIndex), sizeof(data.OSDTheme)); ModifiedAppearance |= themeIndex != originalThemeIndex; } - if (data.OSDLeftP != Setup.OSDLeftP || data.OSDTopP != Setup.OSDTopP || data.OSDWidthP != Setup.OSDWidthP || data.OSDHeightP != Setup.OSDHeightP) + if (!(DoubleEqual(data.OSDLeftP, Setup.OSDLeftP) && DoubleEqual(data.OSDTopP, Setup.OSDTopP) && DoubleEqual(data.OSDWidthP, Setup.OSDWidthP) && DoubleEqual(data.OSDHeightP, Setup.OSDHeightP))) ModifiedAppearance = true; if (data.UseSmallFont != Setup.UseSmallFont || data.AntiAlias != Setup.AntiAlias) ModifiedAppearance = true; Utf8Strn0Cpy(data.FontOsd, fontOsdNames[fontOsdIndex], sizeof(data.FontOsd)); Utf8Strn0Cpy(data.FontSml, fontSmlNames[fontSmlIndex], sizeof(data.FontSml)); Utf8Strn0Cpy(data.FontFix, fontFixNames[fontFixIndex], sizeof(data.FontFix)); - if (strcmp(data.FontOsd, Setup.FontOsd) || data.FontOsdSizeP != Setup.FontOsdSizeP) + if (strcmp(data.FontOsd, Setup.FontOsd) || !DoubleEqual(data.FontOsdSizeP, Setup.FontOsdSizeP)) ModifiedAppearance = true; - if (strcmp(data.FontSml, Setup.FontSml) || data.FontSmlSizeP != Setup.FontSmlSizeP) + if (strcmp(data.FontSml, Setup.FontSml) || !DoubleEqual(data.FontSmlSizeP, Setup.FontSmlSizeP)) ModifiedAppearance = true; - if (strcmp(data.FontFix, Setup.FontFix) || data.FontFixSizeP != Setup.FontFixSizeP) + if (strcmp(data.FontFix, Setup.FontFix) || !DoubleEqual(data.FontFixSizeP, Setup.FontFixSizeP)) ModifiedAppearance = true; } @@ -3152,6 +3154,7 @@ static void SetTrackDescriptions(int LiveChannel) break; case 4: cDevice::PrimaryDevice()->SetAvailableTrack(ttDolby, indexDolby++, 0, LiveChannel ? NULL : p->language, p->description); break; + default: ; } } } diff --git a/menuitems.c b/menuitems.c index df14b10d..05521ad9 100644 --- a/menuitems.c +++ b/menuitems.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.c 2.4 2009/05/03 13:37:55 kls Exp $ + * $Id: menuitems.c 2.5 2009/12/06 11:31:20 kls Exp $ */ #include "menuitems.h" @@ -257,7 +257,7 @@ eOSState cMenuEditPrcItem::ProcessKey(eKeys Key) return state; } newValue /= factor; - if (newValue != *value && (!fresh || min <= newValue) && newValue <= max) { + if (!DoubleEqual(newValue, *value) && (!fresh || min <= newValue) && newValue <= max) { *value = newValue; Set(); } @@ -666,6 +666,7 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key) return ProcessKey(kYellow); } break; + default: ; } } } @@ -675,6 +676,7 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key) case kfEnd: pos = lengthUtf8 - 1; break; case kfIns: return ProcessKey(kGreen); case kfDel: return ProcessKey(kYellow); + default: ; } } } @@ -975,6 +977,7 @@ eOSState cMenuEditTimeItem::ProcessKey(eKeys Key) pos++; } break; + default: ; } } else if (NORMALKEY(Key) == kLeft) { // TODO might want to increase the delta if repeated quickly? @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: nit.c 2.3 2008/12/20 10:57:50 kls Exp $ + * $Id: nit.c 2.4 2009/12/06 11:36:16 kls Exp $ */ #include "nit.h" @@ -110,6 +110,7 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length case 1: f = BCD2INT(f) / 100; break; case 2: f = BCD2INT(f) / 10; break; case 3: f = f * 10; break; + default: ; } Frequencies[n++] = f; } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osd.c 2.5 2009/05/09 10:42:35 kls Exp $ + * $Id: osd.c 2.6 2009/12/06 11:33:47 kls Exp $ */ #include "osd.h" @@ -101,6 +101,7 @@ void cPalette::Take(const cPalette &Palette, tIndexes *Indexes, tColor ColorFg, switch (i) { case 0: Color = ColorBg; break; case 1: Color = ColorFg; break; + default: ; } } int n = Index(Color); @@ -532,6 +533,7 @@ void cBitmap::DrawEllipse(int x1, int y1, int x2, int y2, tColor Color, int Quad case 6: cy = y2; rx /= 2; break; case 7: cx = x2; ry /= 2; break; case 8: cy = y1; rx /= 2; break; + default: ; } int TwoASquare = 2 * rx * rx; int TwoBSquare = 2 * ry * ry; @@ -557,6 +559,7 @@ void cBitmap::DrawEllipse(int x1, int y1, int x2, int y2, tColor Color, int Quad case -2: DrawRectangle(x1, cy - y, cx - x, cy - y, Color); break; case -3: DrawRectangle(x1, cy + y, cx - x, cy + y, Color); break; case -4: DrawRectangle(cx + x, cy + y, x2, cy + y, Color); break; + default: ; } y++; StoppingY += TwoASquare; @@ -591,6 +594,7 @@ void cBitmap::DrawEllipse(int x1, int y1, int x2, int y2, tColor Color, int Quad case -2: DrawRectangle(x1, cy - y, cx - x, cy - y, Color); break; case -3: DrawRectangle(x1, cy + y, cx - x, cy + y, Color); break; case -4: DrawRectangle(cx + x, cy + y, x2, cy + y, Color); break; + default: ; } x++; StoppingX += TwoBSquare; @@ -921,7 +925,7 @@ void cOsdProvider::UpdateOsdSize(bool Force) int Height; double Aspect; cDevice::PrimaryDevice()->GetOsdSize(Width, Height, Aspect); - if (Width != oldWidth || Height != oldHeight || Aspect != oldAspect || Force) { + if (Width != oldWidth || Height != oldHeight || !DoubleEqual(Aspect, oldAspect) || Force) { Setup.OSDLeft = int(round(Width * Setup.OSDLeftP)); Setup.OSDTop = int(round(Height * Setup.OSDTopP)); Setup.OSDWidth = int(round(Width * Setup.OSDWidthP)) & ~0x07; // OSD width must be a multiple of 8 @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: pat.c 2.4 2009/08/16 15:01:03 kls Exp $ + * $Id: pat.c 2.5 2009/12/06 11:39:17 kls Exp $ */ #include "pat.h" @@ -443,7 +443,7 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length } } break; - //default: printf("PID: %5d %5d %2d %3d %3d\n", pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number());//XXX + default: ;//printf("PID: %5d %5d %2d %3d %3d\n", pmt.getServiceId(), stream.getPid(), stream.getStreamType(), pmt.getVersionNumber(), Channel->Number()); } for (SI::Loop::Iterator it; (d = (SI::CaDescriptor*)stream.streamDescriptors.getNext(it, SI::CaDescriptorTag)); ) { CaDescriptors->AddCaDescriptor(d, esPid); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recorder.c 2.6 2009/11/21 15:58:12 kls Exp $ + * $Id: recorder.c 2.7 2009/12/06 11:34:41 kls Exp $ */ #include "recorder.h" @@ -128,7 +128,7 @@ void cRecorder::Action(void) if (frameDetector->Synced()) { if (!InfoWritten) { if (recordingInfo.Read()) { - if (frameDetector->FramesPerSecond() > 0 && recordingInfo.FramesPerSecond() != frameDetector->FramesPerSecond()) { + if (frameDetector->FramesPerSecond() > 0 && !DoubleEqual(recordingInfo.FramesPerSecond(), frameDetector->FramesPerSecond())) { recordingInfo.SetFramesPerSecond(frameDetector->FramesPerSecond()); recordingInfo.Write(); } diff --git a/recording.c b/recording.c index a6cba893..7fdb2244 100644 --- a/recording.c +++ b/recording.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.c 2.19 2009/11/22 19:38:04 kls Exp $ + * $Id: recording.c 2.20 2009/12/06 12:55:36 kls Exp $ */ #include "recording.h" @@ -260,6 +260,7 @@ int cResumeFile::Read(void) switch (*s) { case 'I': resume = atoi(t); break; + default: ; } } fclose(f); @@ -443,8 +444,8 @@ bool cRecordingInfo::Read(FILE *f) ownEvent->SetEventID(EventID); ownEvent->SetStartTime(StartTime); ownEvent->SetDuration(Duration); - ownEvent->SetTableID(TableID); - ownEvent->SetVersion(Version); + ownEvent->SetTableID(uchar(TableID)); + ownEvent->SetVersion(uchar(Version)); } } break; @@ -570,7 +571,7 @@ char *ExchangeChars(char *s, bool ToFileSystem) if (strlen(p) > 2 && isxdigit(*(p + 1)) && isxdigit(*(p + 2))) { char buf[3]; sprintf(buf, "%c%c", *(p + 1), *(p + 2)); - unsigned char c = strtol(buf, NULL, 16); + uchar c = uchar(strtol(buf, NULL, 16)); if (c) { *p = c; memmove(p + 1, p + 3, strlen(p) - 2); @@ -582,6 +583,7 @@ char *ExchangeChars(char *s, bool ToFileSystem) case '\x01': *p = '\''; break; case '\x02': *p = '/'; break; case '\x03': *p = ':'; break; + default: ; } } } @@ -1501,19 +1503,19 @@ cIndexFile::cIndexFile(const char *FileName, bool Record, bool IsPesRecording) if (access(fileName, R_OK) == 0) { struct stat buf; if (stat(fileName, &buf) == 0) { - delta = buf.st_size % sizeof(tIndexTs); + delta = int(buf.st_size % sizeof(tIndexTs)); if (delta) { delta = sizeof(tIndexTs) - delta; esyslog("ERROR: invalid file size (%lld) in '%s'", buf.st_size, fileName); } - last = (buf.st_size + delta) / sizeof(tIndexTs) - 1; + last = int((buf.st_size + delta) / sizeof(tIndexTs) - 1); if (!Record && last >= 0) { size = last + 1; index = MALLOC(tIndexTs, size); if (index) { f = open(fileName, O_RDONLY); if (f >= 0) { - if ((int)safe_read(f, index, buf.st_size) != buf.st_size) { + if (safe_read(f, index, size_t(buf.st_size)) != buf.st_size) { esyslog("ERROR: can't read from file '%s'", fileName); free(index); index = NULL; @@ -1579,8 +1581,8 @@ void cIndexFile::ConvertToPes(tIndexTs *IndexTs, int Count) tIndexPes IndexPes; while (Count-- > 0) { IndexPes.offset = uint32_t(IndexTs->offset); - IndexPes.type = IndexTs->independent ? 1 : 2; // I_FRAME : "not I_FRAME" (exact frame type doesn't matter) - IndexPes.number = IndexTs->number; + IndexPes.type = uchar(IndexTs->independent ? 1 : 2); // I_FRAME : "not I_FRAME" (exact frame type doesn't matter) + IndexPes.number = uchar(IndexTs->number); IndexPes.reserved = 0; memcpy(IndexTs, &IndexPes, sizeof(*IndexTs)); IndexTs++; @@ -1601,7 +1603,7 @@ bool cIndexFile::CatchUp(int Index) f = -1; break; } - int newLast = buf.st_size / sizeof(tIndexTs) - 1; + int newLast = int(buf.st_size / sizeof(tIndexTs) - 1); if (newLast > last) { if (size <= newLast) { size *= 2; @@ -1671,7 +1673,7 @@ bool cIndexFile::Get(int Index, uint16_t *FileNumber, off_t *FileOffset, bool *I uint16_t fn = index[Index + 1].number; off_t fo = index[Index + 1].offset; if (fn == *FileNumber) - *Length = fo - *FileOffset; + *Length = int(fo - *FileOffset); else *Length = -1; // this means "everything up to EOF" (the buffer's Read function will act accordingly) } @@ -1702,7 +1704,7 @@ int cIndexFile::GetNextIFrame(int Index, bool Forward, uint16_t *FileNumber, off uint16_t fn = index[Index + 1].number; off_t fo = index[Index + 1].offset; if (fn == *FileNumber) - *Length = fo - *FileOffset; + *Length = int(fo - *FileOffset); else { esyslog("ERROR: 'I' frame at end of file #%d", *FileNumber); *Length = -1; @@ -1871,11 +1873,11 @@ cUnbufferedFile *cFileName::SetOffset(int Number, off_t Offset) Close(); int MaxFilesPerRecording = isPesRecording ? MAXFILESPERRECORDINGPES : MAXFILESPERRECORDINGTS; if (0 < Number && Number <= MaxFilesPerRecording) { - fileNumber = Number; + fileNumber = uint16_t(Number); sprintf(pFileNumber, isPesRecording ? RECORDFILESUFFIXPES : RECORDFILESUFFIXTS, fileNumber); if (record) { if (access(fileName, F_OK) == 0) { - // files exists, check if it has non-zero size + // file exists, check if it has non-zero size struct stat buf; if (stat(fileName, &buf) == 0) { if (buf.st_size != 0) diff --git a/recording.h b/recording.h index bc3479fe..6c95a34e 100644 --- a/recording.h +++ b/recording.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.h 2.10 2009/11/21 16:12:55 kls Exp $ + * $Id: recording.h 2.11 2009/12/06 12:46:31 kls Exp $ */ #ifndef __RECORDING_H @@ -253,7 +253,7 @@ public: class cFileName { private: cUnbufferedFile *file; - int fileNumber; + uint16_t fileNumber; char *fileName, *pFileNumber; bool record; bool blocking; @@ -262,11 +262,11 @@ public: cFileName(const char *FileName, bool Record, bool Blocking = false, bool IsPesRecording = false); ~cFileName(); const char *Name(void) { return fileName; } - int Number(void) { return fileNumber; } + uint16_t Number(void) { return fileNumber; } bool GetLastPatPmtVersions(int &PatVersion, int &PmtVersion); cUnbufferedFile *Open(void); void Close(void); - cUnbufferedFile *SetOffset(int Number, off_t Offset = 0); + cUnbufferedFile *SetOffset(int Number, off_t Offset = 0); // yes, Number is int for easier internal calculating cUnbufferedFile *NextFile(void); }; @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: remote.c 1.59 2008/02/23 14:14:46 kls Exp $ + * $Id: remote.c 2.1 2009/12/06 12:08:03 kls Exp $ */ #include "remote.h" @@ -287,7 +287,9 @@ int cKbdRemote::MapCodeToFunc(uint64_t Code) if (p->code == Code) return p->func; } - return (Code <= 0xFF) ? Code : kfNone; + if (Code <= 0xFF) + return Code; + return kfNone; } int cKbdRemote::ReadKey(void) @@ -337,9 +339,11 @@ uint64_t cKbdRemote::ReadKeySequence(void) k |= key1 & 0xFF; } while (key1 != 0x7E); break; + default: ; } } break; + default: ; } } } @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: remux.c 2.31 2009/12/05 13:15:10 kls Exp $ + * $Id: remux.c 2.32 2009/12/06 12:10:44 kls Exp $ */ #include "remux.h" @@ -585,6 +585,7 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length) } } break; + default: ; } dbgpatpmt("\n"); if (updatePrimaryDevice) { @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: sdt.c 2.1 2008/04/12 13:33:55 kls Exp $ + * $Id: sdt.c 2.2 2009/12/06 12:11:23 kls Exp $ */ #include "sdt.h" @@ -92,6 +92,7 @@ void cSdtFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length patFilter->Trigger(); } } + default: ; } } break; diff --git a/skinsttng.c b/skinsttng.c index f6298411..cf959d00 100644 --- a/skinsttng.c +++ b/skinsttng.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: skinsttng.c 1.28 2008/02/23 10:23:44 kls Exp $ + * $Id: skinsttng.c 2.1 2009/12/06 12:12:03 kls Exp $ */ // Star Trek: The Next Generation® is a registered trademark of Paramount Pictures @@ -1068,6 +1068,7 @@ void cSkinSTTNGDisplayTracks::SetAudioChannel(int AudioChannel) case 0: bm = &bmAudioStereo; break; case 1: bm = &bmAudioLeft; break; case 2: bm = &bmAudioRight; break; + default: ; } if (bm) osd->DrawBitmap(x3 + 5, y6 + (y7 - y6 - bm->Height()) / 2, *bm, Theme.Color(clrChannelSymbolOn), frameColor); @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 2.4 2009/11/06 15:21:17 kls Exp $ + * $Id: tools.c 2.5 2009/12/06 12:19:56 kls Exp $ */ #include "tools.h" @@ -633,6 +633,7 @@ uint Utf8CharGet(const char *s, int Length) case 2: return ((*s & 0x1F) << 6) | (*(s + 1) & 0x3F); case 3: return ((*s & 0x0F) << 12) | ((*(s + 1) & 0x3F) << 6) | (*(s + 2) & 0x3F); case 4: return ((*s & 0x07) << 18) | ((*(s + 1) & 0x3F) << 12) | ((*(s + 2) & 0x3F) << 6) | (*(s + 3) & 0x3F); + default: ; } return *s; } @@ -942,8 +943,8 @@ cString WeekDayNameFull(int WeekDay) case 4: return tr("Friday"); case 5: return tr("Saturday"); case 6: return tr("Sunday"); + default: return "???"; } - return "???"; } cString WeekDayNameFull(time_t t) @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.h 2.2 2009/04/14 20:41:39 kls Exp $ + * $Id: tools.h 2.3 2009/12/06 11:24:12 kls Exp $ */ #ifndef __TOOLS_H @@ -13,7 +13,9 @@ #include <dirent.h> #include <errno.h> #include <fcntl.h> +#include <float.h> #include <iconv.h> +#include <math.h> #include <poll.h> #include <stddef.h> #include <stdint.h> @@ -60,7 +62,7 @@ void syslog_with_tid(int priority, const char *format, ...) __attribute__ ((form int BCD2INT(int x); // Unfortunately there are no platform independent macros for unaligned -// access. so we do it this way: +// access, so we do it this way: template<class T> inline T get_unaligned(T *p) { @@ -74,6 +76,14 @@ template<class T> inline void put_unaligned(unsigned int v, T* p) ((s *)p)->v = v; } +// Comparing doubles for equality is unsafe, but unfortunately we can't +// overwrite operator==(double, double), so this will have to do: + +inline bool DoubleEqual(double a, double b) +{ + return fabs(a - b) <= DBL_EPSILON; +} + // When handling strings that might contain UTF-8 characters, it may be necessary // to process a "symbol" that consists of several actual character bytes. The // following functions allow transparently accessing a "char *" string without @@ -22,7 +22,7 @@ * * The project's page is at http://www.tvdr.de * - * $Id: vdr.c 2.12 2009/10/25 14:45:47 kls Exp $ + * $Id: vdr.c 2.13 2009/12/06 12:20:43 kls Exp $ */ #include <getopt.h> @@ -242,7 +242,7 @@ int main(int argc, char *argv[]) { "vfat", no_argument, NULL, 'v' | 0x100 }, { "video", required_argument, NULL, 'v' }, { "watchdog", required_argument, NULL, 'w' }, - { NULL } + { NULL, no_argument, NULL, 0 } }; int c; |