diff options
author | scop <scop> | 2005-04-19 18:19:34 +0000 |
---|---|---|
committer | scop <scop> | 2005-04-19 18:19:34 +0000 |
commit | f9c59e544ada17055c3ed15b3d80f0d285c3928d (patch) | |
tree | cd7b038c17b040beb435e0a16aab02346854c9ad /dxr3device.c | |
parent | dea137eddfe1017e9ff85a8c221aee2bca4647ad (diff) | |
download | vdr-plugin-dxr3-f9c59e544ada17055c3ed15b3d80f0d285c3928d.tar.gz vdr-plugin-dxr3-f9c59e544ada17055c3ed15b3d80f0d285c3928d.tar.bz2 |
Mass indentation/whitespace cleanup.
Diffstat (limited to 'dxr3device.c')
-rw-r--r-- | dxr3device.c | 561 |
1 files changed, 283 insertions, 278 deletions
diff --git a/dxr3device.c b/dxr3device.c index 6632d69..42f48d2 100644 --- a/dxr3device.c +++ b/dxr3device.c @@ -27,9 +27,9 @@ #include "dxr3log.h" #include "dxr3osd.h" -extern "C" +extern "C" { - #include <jpeglib.h> +#include <jpeglib.h> } // ================================== @@ -46,10 +46,10 @@ cDxr3Device::cDxr3Device() : m_DemuxDevice(cDxr3Interface::Instance()) // ================================== cDxr3Device::~cDxr3Device() { - if (m_spuDecoder) - { - delete m_spuDecoder; - } + if (m_spuDecoder) + { + delete m_spuDecoder; + } } // ================================== @@ -65,107 +65,107 @@ void cDxr3Device::MakePrimaryDevice(bool On) //! does we have an mpeg2 devocer? bool cDxr3Device::HasDecoder() const { - // sure we have one ;) - return true; + // sure we have one ;) + return true; } // ================================== //! can we replay vdr recordings? bool cDxr3Device::CanReplay() const { - // also sure... - return true; + // also sure... + return true; } // ================================== bool cDxr3Device::SetPlayMode(ePlayMode PlayMode) { - if (cDxr3ConfigData::Instance().GetDebug()) + if (cDxr3ConfigData::Instance().GetDebug()) + { + switch (PlayMode) { - switch (PlayMode) - { - case pmNone: - cLog::Instance() << "cDxr3Device::SetPlayMode audio/video from decoder\n"; - break; - - case pmAudioVideo: - cLog::Instance() << "cDxr3Device::SetPlayMode audio/video from player\n"; - break; - - case pmAudioOnly: - cLog::Instance() << "cDxr3Device::SetPlayMode audio only from player, video from decoder\n"; - break; - - case pmAudioOnlyBlack: - cLog::Instance() << "cDxr3Device::SetPlayMode audio only from player, no video (black screen)\n"; - break; - - case pmExtern_THIS_SHOULD_BE_AVOIDED: - cLog::Instance() << "cDxr3Device::SetPlayMode this should be avoided\n"; - break; - - #if VDRVERSNUM >= 10307 - case pmVideoOnly: - cLog::Instance() << "cDxr3Device::SetPlayMode video only from player, audio from decoder\n"; - break; - #endif - } - } + case pmNone: + cLog::Instance() << "cDxr3Device::SetPlayMode audio/video from decoder\n"; + break; - if (PlayMode == pmExtern_THIS_SHOULD_BE_AVOIDED) - { - Tools::WriteInfoToOsd(tr("DXR3: releasing devices")); - cDxr3Interface::Instance().ExternalReleaseDevices(); - } - else - { - cDxr3Interface::Instance().ExternalReopenDevices(); - } - - // should this relay be here? - m_Offset = 0; - m_AC3Present = false; - m_strBuf.erase(m_strBuf.begin(), m_strBuf.end()); - - if (PlayMode == pmAudioOnlyBlack) - { - m_PlayMode = pmAudioOnly; - } - else - { - m_PlayMode = PlayMode; + case pmAudioVideo: + cLog::Instance() << "cDxr3Device::SetPlayMode audio/video from player\n"; + break; + + case pmAudioOnly: + cLog::Instance() << "cDxr3Device::SetPlayMode audio only from player, video from decoder\n"; + break; + + case pmAudioOnlyBlack: + cLog::Instance() << "cDxr3Device::SetPlayMode audio only from player, no video (black screen)\n"; + break; + + case pmExtern_THIS_SHOULD_BE_AVOIDED: + cLog::Instance() << "cDxr3Device::SetPlayMode this should be avoided\n"; + break; + +#if VDRVERSNUM >= 10307 + case pmVideoOnly: + cLog::Instance() << "cDxr3Device::SetPlayMode video only from player, audio from decoder\n"; + break; +#endif } - - if (m_PlayMode == pmAudioVideo) + } + + if (PlayMode == pmExtern_THIS_SHOULD_BE_AVOIDED) + { + Tools::WriteInfoToOsd(tr("DXR3: releasing devices")); + cDxr3Interface::Instance().ExternalReleaseDevices(); + } + else + { + cDxr3Interface::Instance().ExternalReopenDevices(); + } + + // should this relay be here? + m_Offset = 0; + m_AC3Present = false; + m_strBuf.erase(m_strBuf.begin(), m_strBuf.end()); + + if (PlayMode == pmAudioOnlyBlack) + { + m_PlayMode = pmAudioOnly; + } + else + { + m_PlayMode = PlayMode; + } + + if (m_PlayMode == pmAudioVideo) + { + m_DemuxDevice.SetReplayMode(); + } + + if (m_PlayMode == pmNone) + { + m_DemuxDevice.Stop(); + } + + cLog::Instance() << "Setting audio mode..."; + + if (cDxr3ConfigData::Instance().GetUseDigitalOut()) + { + if (cDxr3ConfigData::Instance().GetAc3OutPut() && m_CalledBySet) { - m_DemuxDevice.SetReplayMode(); + cDxr3Interface::Instance().SetAudioDigitalAC3(); // !!! FIXME + cLog::Instance() << "ac3\n"; } - - if (m_PlayMode == pmNone) + else { - m_DemuxDevice.Stop(); + cDxr3Interface::Instance().SetAudioDigitalPCM(); + cDxr3ConfigData::Instance().SetAc3OutPut(0); + cLog::Instance() << "digital pcm\n"; } - - cLog::Instance() << "Setting audio mode..."; - - if (cDxr3ConfigData::Instance().GetUseDigitalOut()) - { - if (cDxr3ConfigData::Instance().GetAc3OutPut() && m_CalledBySet) - { - cDxr3Interface::Instance().SetAudioDigitalAC3(); // !!! FIXME - cLog::Instance() << "ac3\n"; - } - else - { - cDxr3Interface::Instance().SetAudioDigitalPCM(); - cDxr3ConfigData::Instance().SetAc3OutPut(0); - cLog::Instance() << "digital pcm\n"; - } - } - else - { - cDxr3Interface::Instance().SetAudioAnalog(); - cLog::Instance() << "analog\n"; + } + else + { + cDxr3Interface::Instance().SetAudioAnalog(); + cLog::Instance() << "analog\n"; } return true; @@ -174,38 +174,38 @@ bool cDxr3Device::SetPlayMode(ePlayMode PlayMode) // ================================== int64_t cDxr3Device::GetSTC() { - return cDxr3Interface::Instance().GetPts(); + return cDxr3Interface::Instance().GetPts(); } // ================================== void cDxr3Device::TrickSpeed(int Speed) { - if (cDxr3ConfigData::Instance().GetDebug()) - { - cLog::Instance() << "cDxr3Device::TrickSpeed(int Speed): " << Speed << "\n"; - } + if (cDxr3ConfigData::Instance().GetDebug()) + { + cLog::Instance() << "cDxr3Device::TrickSpeed(int Speed): " + << Speed << "\n"; + } + m_DemuxDevice.SetTrickMode(DXR3_FAST, Speed); - m_DemuxDevice.SetTrickMode(DXR3_FAST, Speed); + /* + switch (Speed) + { + case 6: + cLog::Instance() << "Trickspeed: 1x vorwärts\n"; + break; -/* - switch (Speed) - { - case 6: - cLog::Instance() << "Trickspeed: 1x vorwärts\n"; - break; - - case 3: - cLog::Instance() << "Trickspeed: 2x vorwärts\n"; - break; - - case 1: - cLog::Instance() << "Trickspeed: 3x vorwärts\n"; - break; - }; -*/ -/* + case 3: + cLog::Instance() << "Trickspeed: 2x vorwärts\n"; + break; + + case 1: + cLog::Instance() << "Trickspeed: 3x vorwärts\n"; + break; + }; + */ + /* 6 ... 1x vowärts 3 ... 2x vowärts 1 ... 2x vowärts @@ -215,23 +215,24 @@ void cDxr3Device::TrickSpeed(int Speed) 1 ... 3x rückwärts 8 ... 1x vorwörts, wenn Pause gedrückt -*/ + */ - /* + /* #define EM8300_PLAYMODE_PAUSED 1 #define EM8300_PLAYMODE_SLOWFORWARDS 2 #define EM8300_PLAYMODE_SLOWBACKWARDS 3 #define EM8300_PLAYMODE_SINGLESTEP 4 - */ - /* - if (Speed == 8) - { - cDxr3Interface::Instance().SingleStep(); - } - else - { - m_DemuxDevice.SetTrickMode(DXR3_FAST); - }*/ + */ + /* + if (Speed == 8) + { + cDxr3Interface::Instance().SingleStep(); + } + else + { + m_DemuxDevice.SetTrickMode(DXR3_FAST); + } + */ } // ================================== @@ -249,45 +250,45 @@ void cDxr3Device::Play() { m_DemuxDevice.SetReplayMode(); m_Offset = 0; - ///< free buffer - m_strBuf.erase(m_strBuf.begin(), m_strBuf.end()); + ///< free buffer + m_strBuf.erase(m_strBuf.begin(), m_strBuf.end()); } // ================================== //! puts the device into "freeze frame" mode void cDxr3Device::Freeze() { - m_DemuxDevice.SetTrickMode(DXR3_FREEZE); + m_DemuxDevice.SetTrickMode(DXR3_FREEZE); } // ================================== void cDxr3Device::Mute() { - m_DemuxDevice.SetTrickMode(DXR3_FAST); + m_DemuxDevice.SetTrickMode(DXR3_FAST); } // ================================== //! displays the given I-frame as a still picture. void cDxr3Device::StillPicture(const uchar *Data, int Length) { - m_DemuxDevice.StillPicture(Data, Length); + m_DemuxDevice.StillPicture(Data, Length); } // ================================== bool cDxr3Device::Poll(cPoller &Poller, int TimeoutMs) { - if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE && - m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || - cDxr3Interface::Instance().IsExternalReleased()) - { + if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE && + m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || + cDxr3Interface::Instance().IsExternalReleased()) + { #if VDRVERSNUM >= 10314 - cCondWait::SleepMs(TimeoutMs); + cCondWait::SleepMs(TimeoutMs); #else - usleep(TimeoutMs * 1000); + usleep(TimeoutMs * 1000); #endif - return false; - } - return m_DemuxDevice.Poll(TimeoutMs); // Poller.Poll(TimeoutMs); + return false; + } + return m_DemuxDevice.Poll(TimeoutMs); // Poller.Poll(TimeoutMs); } // ================================== @@ -296,52 +297,53 @@ int cDxr3Device::PlayVideo(const uchar *Data, int Length) { int retLength = 0; int origLength = Length; - + if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE && - m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || cDxr3Interface::Instance().IsExternalReleased()) - { - // Why is here so a huge time waster? - //usleep(1000000); - return -1; + m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || + cDxr3Interface::Instance().IsExternalReleased()) + { + // Why is here so a huge time waster? + //usleep(1000000); + return -1; } - if (m_strBuf.length()) + if (m_strBuf.length()) + { + m_strBuf.append((const char*)Data, Length); + + if (m_PlayMode == pmAudioOnly) { - m_strBuf.append((const char*)Data, Length); - - if (m_PlayMode == pmAudioOnly) - { - retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)m_strBuf.data(), m_strBuf.length()); - } - else - { - retLength = m_DemuxDevice.DemuxPes((const uint8_t*)m_strBuf.data(), m_strBuf.length()); - } - } - else + retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)m_strBuf.data(), m_strBuf.length()); + } + else { - if (m_PlayMode == pmAudioOnly) - { - retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)Data, Length); - } - else - { - retLength = m_DemuxDevice.DemuxPes((const uint8_t*)Data, Length); - } + retLength = m_DemuxDevice.DemuxPes((const uint8_t*)m_strBuf.data(), m_strBuf.length()); + } + } + else + { + if (m_PlayMode == pmAudioOnly) + { + retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)Data, Length); + } + else + { + retLength = m_DemuxDevice.DemuxPes((const uint8_t*)Data, Length); + } } Length -= retLength; - - if (m_strBuf.length()) - { - m_strBuf.erase(m_strBuf.length() - retLength, retLength); - } - else + + if (m_strBuf.length()) + { + m_strBuf.erase(m_strBuf.length() - retLength, retLength); + } + else + { + if (Length) { - if (Length) - { - m_strBuf.append((const char*)(Data + retLength), Length); - } + m_strBuf.append((const char*)(Data + retLength), Length); + } } return origLength; @@ -350,172 +352,175 @@ int cDxr3Device::PlayVideo(const uchar *Data, int Length) // ================================== // plays additional audio streams, like Dolby Digital #if VDRVERSNUM >= 10318 - int cDxr3Device::PlayAudio(const uchar *Data, int Length) +int cDxr3Device::PlayAudio(const uchar *Data, int Length) #else - void cDxr3Device::PlayAudio(const uchar *Data, int Length) +void cDxr3Device::PlayAudio(const uchar *Data, int Length) #endif { int retLength = 0; #if VDRVERSNUM >= 10318 - int origLength = Length; -#endif + int origLength = Length; +#endif #if VDRVERSNUM < 10307 - if (!m_AC3Present) - { - Interface->Write(Interface->Width() / 2, 0, "AC3", clrRed); - } + if (!m_AC3Present) + { + Interface->Write(Interface->Width() / 2, 0, "AC3", clrRed); + } #endif m_AC3Present = true; - - if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE && - m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || cDxr3Interface::Instance().IsExternalReleased()) - { - //usleep(1000000); + if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE && + m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || + cDxr3Interface::Instance().IsExternalReleased()) + { + //usleep(1000000); #if VDRVERSNUM >= 10318 - return 0; + return 0; #else - return; + return; #endif } - if (m_strBuf.length()) + if (m_strBuf.length()) + { + m_strBuf.append((const char*)Data, Length); + if (m_PlayMode == pmAudioOnly) { - m_strBuf.append((const char*)Data, Length); - if (m_PlayMode == pmAudioOnly) { retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)m_strBuf.data(), m_strBuf.length()); } else { retLength = m_DemuxDevice.DemuxPes((const uint8_t*)m_strBuf.data(), m_strBuf.length(), true); } - - } - else + } + else + { + if (m_PlayMode == pmAudioOnly) { - if (m_PlayMode == pmAudioOnly) { - retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*)Data, Length); - } else { - retLength = m_DemuxDevice.DemuxPes((const uint8_t*)Data, Length, true); - } + retLength = m_DemuxDevice.DemuxAudioPes((const uint8_t*) Data, Length); + } else { + retLength = m_DemuxDevice.DemuxPes((const uint8_t*)Data, Length, true); + } } - + Length -= retLength; - - if (m_strBuf.length()) - { - m_strBuf.erase(m_strBuf.length() - retLength, retLength); - } - else + + if (m_strBuf.length()) + { + m_strBuf.erase(m_strBuf.length() - retLength, retLength); + } + else + { + if (Length) { - if (Length) - { - m_strBuf.append((const char*)(Data + retLength), Length); - } + m_strBuf.append((const char*)(Data + retLength), Length); + } } #if VDRVERSNUM >= 10318 - return origLength; + return origLength; #endif } // addition functions // ================================== //! capture a single frame as an image -bool cDxr3Device::GrabImage(const char *FileName, bool Jpeg, int Quality, int SizeX, int SizeY) +bool cDxr3Device::GrabImage(const char *FileName, bool Jpeg, int Quality, + int SizeX, int SizeY) { - int w = SizeX; - int h = SizeY; - unsigned char *Data = new unsigned char[w*h*3]; - memset(Data, 0, w*h*3); - - // we could get a I-Frame and save it - //m_DemuxDevice.StillPicture(Data, 100*1024); - - isyslog("grabbing to %s (%s %d %d %d)", FileName, Jpeg ? "JPEG" : "PNM", Quality, w, h); - FILE *f = fopen(FileName, "wb"); - if (f) + int w = SizeX; + int h = SizeY; + unsigned char *Data = new unsigned char[w * h * 3]; + memset(Data, 0, w * h * 3); + + // we could get a I-Frame and save it + //m_DemuxDevice.StillPicture(Data, 100 * 1024); + + isyslog("grabbing to %s (%s %d %d %d)", + FileName, Jpeg ? "JPEG" : "PNM", Quality, w, h); + FILE *f = fopen(FileName, "wb"); + if (f) + { + if (Jpeg) { - if (Jpeg) - { - ///< write JPEG file: - struct jpeg_compress_struct cinfo; - struct jpeg_error_mgr jerr; - cinfo.err = jpeg_std_error(&jerr); - jpeg_create_compress(&cinfo); - jpeg_stdio_dest(&cinfo, f); - cinfo.image_width = w; - cinfo.image_height = h; - cinfo.input_components = 3; - cinfo.in_color_space = JCS_RGB; - - jpeg_set_defaults(&cinfo); - jpeg_set_quality(&cinfo, Quality, true); - jpeg_start_compress(&cinfo, true); - - int rs = w * 3; - JSAMPROW rp[h]; - for (int k = 0; k < h; k++) - { - rp[k] = &Data[rs * k]; - } - jpeg_write_scanlines(&cinfo, rp, h); - jpeg_finish_compress(&cinfo); - jpeg_destroy_compress(&cinfo); - - } - else - { - ///< write PNM file: - if (fprintf(f, "P6\n%d\n%d\n255\n", w, h) < 0 || - fwrite(Data, w * h * 3, 1, f) != 1) - { - LOG_ERROR_STR(FileName); - } - } - fclose(f); + ///< write JPEG file: + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_compress(&cinfo); + jpeg_stdio_dest(&cinfo, f); + cinfo.image_width = w; + cinfo.image_height = h; + cinfo.input_components = 3; + cinfo.in_color_space = JCS_RGB; + + jpeg_set_defaults(&cinfo); + jpeg_set_quality(&cinfo, Quality, true); + jpeg_start_compress(&cinfo, true); + + int rs = w * 3; + JSAMPROW rp[h]; + for (int k = 0; k < h; k++) + { + rp[k] = &Data[rs * k]; + } + jpeg_write_scanlines(&cinfo, rp, h); + jpeg_finish_compress(&cinfo); + jpeg_destroy_compress(&cinfo); + } else { - return false; + ///< write PNM file: + if (fprintf(f, "P6\n%d\n%d\n255\n", w, h) < 0 || + fwrite(Data, w * h * 3, 1, f) != 1) + { + LOG_ERROR_STR(FileName); + } } + fclose(f); + } + else + { + return false; + } - delete Data; - return true; + delete Data; + return true; } // ================================== void cDxr3Device::SetVideoFormat(bool VideoFormat16_9) { - if (cDxr3ConfigData::Instance().GetDebug()) - { - cLog::Instance() << "cDxr3Device::SetPlayMode(ePlayMode PlayMode)() done\n"; - } - // Do we need this function? + if (cDxr3ConfigData::Instance().GetDebug()) + { + cLog::Instance() << "cDxr3Device::SetPlayMode(ePlayMode PlayMode)() done\n"; + } + // Do we need this function? } // ================================== //! sets volume for audio output void cDxr3Device::SetVolumeDevice(int Volume) { - cDxr3Interface::Instance().SetVolume(Volume); + cDxr3Interface::Instance().SetVolume(Volume); } // ================================== // get spudecoder cSpuDecoder *cDxr3Device::GetSpuDecoder(void) { - if (!m_spuDecoder && IsPrimaryDevice()) - { - m_spuDecoder = new cDxr3SpuDecoder(); - } - return m_spuDecoder; + if (!m_spuDecoder && IsPrimaryDevice()) + { + m_spuDecoder = new cDxr3SpuDecoder(); + } + return m_spuDecoder; } #if VDRVERSNUM < 10307 // ================================== // return osd -cOsdBase *cDxr3Device::NewOsd(int x, int y) +cOsdBase *cDxr3Device::NewOsd(int x, int y) { return m_DemuxDevice.NewOsd(x, y); } |