|
vdr-plugin-softhddevice-drm-gles 1.6.4-d0291bb
|
PiP Stream Handler. More...
#include <pipreceiver.h>
Public Member Functions | |
| cPipHandler (cSoftHdDevice *) | |
| 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 a 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 | |
PiP Stream Handler.
Definition at line 55 of file pipreceiver.h.
| cPipHandler::cPipHandler | ( | cSoftHdDevice * | device | ) |
Definition at line 154 of file pipreceiver.cpp.
|
virtual |
Definition at line 160 of file pipreceiver.cpp.
References Stop().
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 383 of file pipreceiver.cpp.
References m_active, m_pEventReceiver, IEventReceiver::OnEventReceived(), PIPCHANDOWN, and PIPCHANUP.
Referenced by cSoftHdDevice::PipChannelChange().
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 402 of file pipreceiver.cpp.
References LOGDEBUG, m_active, m_pEventReceiver, m_pPipChannel, IEventReceiver::OnEventReceived(), PIPCHANSWAP, and PIPSTOP.
Referenced by cSoftHdDevice::PipChannelSwap().
Stop picture-in-picture.
Definition at line 362 of file pipreceiver.cpp.
References m_active, m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSTOP.
Referenced by cSoftHdDevice::PipDisable().
Start picture-in-picture.
Definition at line 351 of file pipreceiver.cpp.
References m_active, m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSTART.
Referenced by cSoftHdDevice::PipEnable().
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 306 of file pipreceiver.cpp.
References m_active, m_pPipChannel, Start(), and Stop().
Referenced by HandleEvent().
Enable/ disable picture-in-picture.
| on | true, if pip should be enabled |
Definition at line 282 of file pipreceiver.cpp.
References LOGDEBUG, m_active, m_pDevice, m_pipChannelNum, cSoftHdDevice::SetRenderPipActive(), Start(), and Stop().
Referenced by HandleEvent().
Handle a pip event.
Definition at line 175 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().
Definition at line 60 of file pipreceiver.h.
References m_active.
Referenced by cSoftHdDevice::PipIsEnabled().
Set size and position for the pip window.
Definition at line 424 of file pipreceiver.cpp.
References m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSIZECHANGE.
Referenced by cSoftHdDevice::PipSetSize().
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 220 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().
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 259 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().
Swap pip between normal and alternative position.
Definition at line 432 of file pipreceiver.cpp.
References m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPSWAPPOSITION.
Referenced by cSoftHdDevice::PipSwapPosition().
Toggle picture-in-picture.
Definition at line 373 of file pipreceiver.cpp.
References m_pEventReceiver, IEventReceiver::OnEventReceived(), and PIPTOGGLE.
Referenced by cSoftHdDevice::PipToggle().
true, if pip is active
Definition at line 76 of file pipreceiver.h.
Referenced by ChannelChange(), ChannelSwap(), Disable(), Enable(), HandleChannelChange(), HandleEnable(), HandleEvent(), IsEnabled(), Start(), and Stop().
|
private |
pointer to device
Definition at line 71 of file pipreceiver.h.
Referenced by HandleEnable(), HandleEvent(), Start(), and Stop().
|
private |
pointer to event receiver
Definition at line 72 of file pipreceiver.h.
Referenced by ChannelChange(), ChannelSwap(), Disable(), Enable(), SetSize(), SwapPosition(), and Toggle().
|
private |
current pip channel number
Definition at line 74 of file pipreceiver.h.
Referenced by HandleEnable(), and Start().
current pip channel
Definition at line 75 of file pipreceiver.h.
Referenced by ChannelSwap(), HandleChannelChange(), Start(), and Stop().
|
private |
pointer to pip receiver
Definition at line 73 of file pipreceiver.h.