|
vdr-plugin-softhddevice-drm-gles 1.5.9-20e15de
|
cPipHandler - class for pip More...
#include <pipreceiver.h>
Public Member Functions | |
| cPipHandler (cSoftHdDevice *) | |
| cPipHandler constructor | |
| virtual | ~cPipHandler (void) |
| bool | IsEnabled (void) |
| void | Enable (void) |
| Start picture-in-picture. | |
| void | Disable (void) |
| Stop picture-in-picture. | |
| void | Toggle (void) |
| Toggle picture-in-picture. | |
| void | ChannelChange (int) |
| Change the pip channel. | |
| void | ChannelSwap (bool) |
| Swap the pip channel with main live channel. | |
| void | SetSize (void) |
| Set size and position for the pip window. | |
| void | SwapPosition (void) |
| Swap pip between normal and alternative position. | |
| void | HandleEvent (enum PipState) |
| Handle the pip event. | |
Private Member Functions | |
| int | Start (int) |
| Create a new pip receiver and render the pip stream. | |
| void | Stop (void) |
| Delete the pip receiver, clear decoder and display buffers and disable rendering the pip window. | |
| void | HandleEnable (bool) |
| Enable/ disable picture-in-picture. | |
| void | HandleChannelChange (int) |
| Change the pip channel. | |
Private Attributes | |
| cSoftHdDevice * | m_pDevice |
| pointer to device | |
| IEventReceiver * | m_pEventReceiver |
| pointer to event receiver | |
| cPipReceiver * | m_pPipReceiver = nullptr |
| pointer to pip receiver | |
| int | m_pipChannelNum |
| current pip channel number | |
| const cChannel * | m_pPipChannel |
| current pip channel | |
| bool | m_active = false |
| true, if pip is active | |
cPipHandler - class for pip
Definition at line 55 of file pipreceiver.h.
| cPipHandler::cPipHandler | ( | cSoftHdDevice * | device | ) |
cPipHandler constructor
Definition at line 159 of file pipreceiver.cpp.
|
virtual |
Definition at line 165 of file pipreceiver.cpp.
References Stop().
| void cPipHandler::ChannelChange | ( | int | direction | ) |
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 388 of file pipreceiver.cpp.
References m_active, m_pEventReceiver, IEventReceiver::OnEventReceived(), PIPCHANDOWN, and PIPCHANUP.
Referenced by cSoftHdDevice::PipChannelChange().
| void cPipHandler::ChannelSwap | ( | bool | closePip | ) |
Swap the pip channel with main live channel.
The channel switch of the main stream must be done out of OnEventReceived() because it triggers a SetPlayMode() which end in a deadlock otherwise.
| closePip | close the pip window after the channel swap |
Definition at line 407 of file pipreceiver.cpp.
References LOGDEBUG, m_active, m_pEventReceiver, m_pPipChannel, IEventReceiver::OnEventReceived(), PIPCHANSWAP, and PIPSTOP.
Referenced by cSoftHdDevice::PipChannelSwap().
| void cPipHandler::Disable | ( | void | ) |
Stop picture-in-picture.
Definition at line 367 of file pipreceiver.cpp.
References m_active, m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSTOP.
Referenced by cSoftHdDevice::PipDisable().
| void cPipHandler::Enable | ( | void | ) |
Start picture-in-picture.
Definition at line 356 of file pipreceiver.cpp.
References m_active, m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSTART.
Referenced by cSoftHdDevice::PipEnable().
|
private |
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 311 of file pipreceiver.cpp.
References m_active, m_pPipChannel, Start(), and Stop().
Referenced by HandleEvent().
|
private |
Enable/ disable picture-in-picture.
| on | true, if pip should be enabled |
Definition at line 287 of file pipreceiver.cpp.
References LOGDEBUG, m_active, m_pDevice, m_pipChannelNum, cSoftHdDevice::SetRenderPipActive(), Start(), and Stop().
Referenced by HandleEvent().
| void cPipHandler::HandleEvent | ( | enum PipState | event | ) |
Handle the pip event.
Definition at line 180 of file pipreceiver.cpp.
References HandleChannelChange(), HandleEnable(), m_active, m_pDevice, PIPCHANDOWN, PIPCHANSWAP, PIPCHANUP, PIPSIZECHANGE, PIPSTART, PIPSTOP, PIPSWAPPOSITION, PIPTOGGLE, cSoftHdDevice::SetRenderPipSize(), Start(), Stop(), and cSoftHdDevice::ToggleRenderPipPosition().
Referenced by cSoftHdDevice::OnEventReceived().
|
inline |
Definition at line 61 of file pipreceiver.h.
References m_active.
Referenced by cSoftHdDevice::PipIsEnabled().
| void cPipHandler::SetSize | ( | void | ) |
Set size and position for the pip window.
Definition at line 429 of file pipreceiver.cpp.
References m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSIZECHANGE.
Referenced by cSoftHdDevice::PipSetSize().
|
private |
Create a new pip receiver and render the pip stream.
| channelNum | number of the channel to be switched to 0 switches to the current main stream channel |
| 0 | pip was enabled |
| -1 | pip wasn't enabled, no device for channel available |
Definition at line 225 of file pipreceiver.cpp.
References LOGDEBUG, LOGERROR, m_active, m_pDevice, m_pipChannelNum, m_pPipChannel, m_pPipReceiver, and Stop().
Referenced by HandleChannelChange(), HandleEnable(), and HandleEvent().
|
private |
Delete the pip receiver, clear decoder and display buffers and disable rendering the pip window.
We do not need to halt main stream decoder and display thread for this, so only halt the pip decoding thread here (in m_pDevice->ResetPipStream()) - not in OnEventReceived().
Definition at line 264 of file pipreceiver.cpp.
References LOGDEBUG, m_active, m_pDevice, m_pPipChannel, m_pPipReceiver, and cSoftHdDevice::ResetPipStream().
Referenced by HandleChannelChange(), HandleEnable(), HandleEvent(), Start(), and ~cPipHandler().
| void cPipHandler::SwapPosition | ( | void | ) |
Swap pip between normal and alternative position.
Definition at line 437 of file pipreceiver.cpp.
References m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSWAPPOSITION.
Referenced by cSoftHdDevice::PipSwapPosition().
| void cPipHandler::Toggle | ( | void | ) |
Toggle picture-in-picture.
Definition at line 378 of file pipreceiver.cpp.
References m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPTOGGLE.
Referenced by cSoftHdDevice::PipToggle().
|
private |
true, if pip is active
Definition at line 77 of file pipreceiver.h.
Referenced by ChannelChange(), ChannelSwap(), Disable(), Enable(), HandleChannelChange(), HandleEnable(), HandleEvent(), IsEnabled(), Start(), and Stop().
|
private |
pointer to device
Definition at line 72 of file pipreceiver.h.
Referenced by HandleEnable(), HandleEvent(), Start(), and Stop().
|
private |
pointer to event receiver
Definition at line 73 of file pipreceiver.h.
Referenced by ChannelChange(), ChannelSwap(), Disable(), Enable(), SetSize(), SwapPosition(), and Toggle().
|
private |
current pip channel number
Definition at line 75 of file pipreceiver.h.
Referenced by HandleEnable(), and Start().
|
private |
current pip channel
Definition at line 76 of file pipreceiver.h.
Referenced by ChannelSwap(), HandleChannelChange(), Start(), and Stop().
|
private |
pointer to pip receiver
Definition at line 74 of file pipreceiver.h.