diff options
Diffstat (limited to 'dxr3interface.h')
-rw-r--r-- | dxr3interface.h | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/dxr3interface.h b/dxr3interface.h deleted file mode 100644 index 103e2b6..0000000 --- a/dxr3interface.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * dxr3interface.h - * - * Copyright (C) 2002-2004 Kai Möller - * Copyright (C) 2004 Christian Gmeiner - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#ifndef _DXR3_INTERFACE_H_ -#define _DXR3_INTERFACE_H_ - -#include <stdlib.h> -#include <stdint.h> -#include <unistd.h> -#include <linux/em8300.h> -#include <sys/ioctl.h> - -#include "dxr3vdrincludes.h" -#include "dxr3log.h" -#include "dxr3configdata.h" -#include "dxr3sysclock.h" - -// ================================== -class cFixedLengthFrame; - -// ================================== -//! interafce to dxr3-card -/*! - cDxr3Interface is the interface to the dxr3 - driver and so to the card, - so this is the layer between plugin and driver. -*/ -class cDxr3Interface : public Singleton<cDxr3Interface> -{ -public: - cDxr3Interface(); - ~cDxr3Interface(); - - // main - void Start(); - void Stop(); - - // audio - void SetAudioAnalog(); - void SetAudioDigitalPCM(); - void SetAudioDigitalAC3(); - void SetVolume(int volume) { m_volume = volume;} - void SetAudioSpeed(uint32_t speed); - void SetChannelCount(uint32_t count); - void SetAudioSampleSize(uint32_t sampleSize); - - // clock - void SetSysClock(uint32_t scr); - uint32_t GetSysClock() const; - void SetPts(uint32_t pts); - void SetSpuPts(uint32_t pts); - int64_t GetPts(); - - // state changes - void EnableSPU(); - void DisableSPU(); - void EnableVideo() { m_VideoActive = true; } - void DisableVideo() { m_VideoActive = false; } - void EnableAudio() { m_AudioActive = true; } - void DisableAudio(); - void EnableOverlay(); - void DisanleOverlay(); - - // set/get functions - uint32_t GetAspectRatio() const; - void SetAspectRatio(uint32_t ratio); - uint32_t GetHorizontalSize() const { return m_horizontal; } - void SetHorizontalSize(uint32_t horizontal) { m_horizontal = horizontal;}; - - // play functions - void SetPlayMode(); - void Pause(); - void SingleStep(); - void PlayVideoFrame(cFixedLengthFrame* pFrame, int times = 1); - void PlayVideoFrame(const uint8_t* pBuf, int length, int times = 1); - void PlayAudioFrame(cFixedLengthFrame* pFrame); - void PlayAudioFrame(uint8_t* pBuf, int length); - void PlayAudioLpcmFrame(uint8_t* pBuf, int length); - - // external device access - void ExternalReleaseDevices(); - void ExternalReopenDevices(); - bool IsExternalReleased() const { return m_ExternalReleased; } - - // tools - void PlayBlackFrame(); - void ReOpenAudio(); - - // osd/spu - void ClearOsd(); - void WriteSpu(const uint8_t* pBuf, int length); - void SetButton(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint32_t palette); - void ClearButton(); - void SetPalette(unsigned int *pal = NULL); - - // overlay functions - - // helper functions for dxr3 main osd screen - void ResetHardware(); - - // set brightness/contrast/saturation - void SetBrightness(int value); - void SetContrast(int value); - void SetSaturation(int value); - -private: - // file handles - int m_fdControl; ///< filehandle for contol fifo of dxr3 card - int m_fdVideo; ///< filehandle for video fifo of dxr3 card - int m_fdAudio; ///< filehandle for audio fifo of dxr3 card - int m_fdSpu; ///< filehandle for spu fifo of dxr3 card - uint32_t m_lastSeenPts; - - // dxr3 clock - cDxr3SysClock* m_pClock; ///< clock used for sync - - uint32_t m_audioMode; ///< current used audiomode like analog or digital-PCM - uint32_t m_audioChannelCount; ///< how many channles has the current audiostream - uint32_t m_audioDataRate; ///< which rate is used for the current audiostream - uint32_t m_audioSampleSize; ///< how big is the sample size for the current audiostream - //int m_aspectDelayCounter; - uint32_t m_aspectRatio; ///< current used aspect ratio - uint32_t m_horizontal; ///< horizontal size of current videostream - bool m_ExternalReleased; ///< is dxr3 used by e.g. mplayer? - int m_volume; ///< volumevalue (0...255) - uint32_t m_spuMode; ///< is spu enabled or disabled? - bool m_AudioActive; ///< is audio active? - bool m_VideoActive; ///< is video active? - bool m_OverlayActive; ///< is overlay active? - - // bcs - em8300_bcs_t m_bcs; ///< BrightnessContrastSaturation values - - void UploadMicroCode(); - void ConfigureDevice(); - void ResampleVolume(short* pcmbuf, int size); - void Resuscitation(); - - // access registers - long ReadRegister(int registernum); - void WriteRegister(int registernum, int val); - - // grab screen - void GrabScreen(int w, int h, char** buf); - - // maybe we should copy this routine into em8300 driver - char Dxr3CopyYUVData(int pos, int *dst, int length); - -protected: - static cMutex* m_pMutex; ///< mutex for dxr3interface - - static void Lock() { cDxr3Interface::m_pMutex->Lock(); } - static void Unlock() { cDxr3Interface::m_pMutex->Unlock(); } -}; - -#endif /*_DXR3_INTERFACE_H_*/ - -// Local variables: -// mode: c++ -// c-file-style: "stroustrup" -// c-file-offsets: ((inline-open . 0)) -// indent-tabs-mode: t -// End: |