|
vdr-plugin-drmdevice 2.0.0-46418f1
|
PiP Stream Handler. More...
#include <pip.h>
Public Member Functions | |
| cPipHandler (cOutputDevice *) | |
| virtual | ~cPipHandler (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. | |
| bool | IsEnabled (void) |
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 | |
| cOutputDevice * | m_pDevice |
| pointer to device | |
| cPipReceiver * | m_pPipReceiver = nullptr |
| pointer to pip receiver | |
| int | m_pipChannelNum = 0 |
| current pip channel number | |
| const cChannel * | m_pPipChannel |
| current pip channel | |
| std::atomic< bool > | m_active = false |
| true, if pip is active | |
| cPipHandler::cPipHandler | ( | cOutputDevice * | device | ) |
|
virtual |
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 338 of file pip.cpp.
References HandleChannelChange(), and m_active.
Referenced by cOutputDevice::PipChannelChange().
Swap the pip channel with main live channel.
| closePip | close the pip window after the channel swap |
Definition at line 354 of file pip.cpp.
References LOGDEBUG, m_active, m_pPipChannel, Start(), and Stop().
Referenced by cOutputDevice::PipChannelSwap().
Stop picture-in-picture.
Definition at line 317 of file pip.cpp.
References HandleEnable(), and m_active.
Referenced by cOutputDevice::Detach(), cOutputDevice::PipDisable(), cOutputDevice::SetPlayMode(), and cOutputDevice::Stop().
Start picture-in-picture.
Definition at line 306 of file pip.cpp.
References HandleEnable(), and m_active.
Referenced by cOutputDevice::PipEnable().
Change the pip channel.
| direction | 1: channel up, -1: channel down |
Definition at line 263 of file pip.cpp.
References m_active, m_pDevice, m_pPipChannel, Start(), and Stop().
Referenced by ChannelChange().
Definition at line 68 of file pip.h.
References m_active.
Referenced by cOutputDevice::PipIsEnabled().
Set size and position for the pip window.
Definition at line 377 of file pip.cpp.
References m_pDevice, and cOutputDevice::SetRenderPipSize().
Referenced by cOutputDevice::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 177 of file pip.cpp.
References LOGDEBUG, LOGERROR, m_active, m_pDevice, m_pipChannelNum, m_pPipChannel, m_pPipReceiver, and Stop().
Referenced by ChannelSwap(), HandleChannelChange(), and HandleEnable().
Delete the pip receiver, clear decoder and display buffers and disable rendering the pip window.
We do not need to halt main stream decoder for this, so only halt the PiP decoding and render thread here (in m_pDevice->ResetPipStream())
Definition at line 219 of file pip.cpp.
References LOGDEBUG, m_active, m_pDevice, m_pPipChannel, m_pPipReceiver, and cOutputDevice::ResetPipStream().
Referenced by ChannelSwap(), HandleChannelChange(), HandleEnable(), Start(), and ~cPipHandler().
Swap pip between normal and alternative position.
Definition at line 385 of file pip.cpp.
References m_pDevice, cOutputDevice::SetRenderPipSize(), and cOutputDevice::ToggleRenderPipPosition().
Referenced by cOutputDevice::PipSwapPosition().
Toggle picture-in-picture.
Definition at line 328 of file pip.cpp.
References HandleEnable(), and m_active.
Referenced by cOutputDevice::PipToggle().
true, if pip is active
Definition at line 75 of file pip.h.
Referenced by ChannelChange(), ChannelSwap(), Disable(), Enable(), HandleChannelChange(), HandleEnable(), IsEnabled(), Start(), Stop(), and Toggle().
|
private |
pointer to device
Definition at line 71 of file pip.h.
Referenced by HandleChannelChange(), HandleEnable(), SetSize(), Start(), Stop(), and SwapPosition().
|
private |
current pip channel number
Definition at line 73 of file pip.h.
Referenced by HandleEnable(), and Start().
current pip channel
Definition at line 74 of file pip.h.
Referenced by ChannelSwap(), HandleChannelChange(), Start(), and Stop().
|
private |