NDEVR
API Documentation
VncCameraView

A PhysicalCameraView that displays a remote desktop via the VNC protocol, allowing users to view and interact with a remote machine's screen. More...

Inheritance diagram for VncCameraView:
[legend]
Collaboration diagram for VncCameraView:
[legend]

Public Member Functions

 VncCameraView ()
 Default constructor.
 VncCameraView (DynamicPointer< Camera > &camera, QWidget *parent=nullptr)
 Constructs a VNC camera view for the given camera.
void cleanup () override
 Performs cleanup of camera resources before destruction.
virtual void refreshInstance () override
 Refreshes the camera instance, reconnecting if needed.
virtual bool setCameraSource (const StringView &connection_id) override
 Sets the camera source by connection string or identifier.
virtual void setPassword (const StringView &password)
 Sets the VNC authentication password.
virtual void setResizeTcpServer (TcpServer *server, fltp08 size_multiplier)
 Associates a TCP server for dynamic window resizing over the VNC connection.
Public Member Functions inherited from PhysicalCameraView
StringView activeCodec () const
 Returns the currently active codec identifier.
StringView activeVideoMux () const
 Returns the currently active video muxer identifier.
QWidget * activeWidget () const
 Returns the currently active widget in the stacked display.
virtual void addWidget (const QPointer< QWidget > &button) override
 Adds an overlay widget to the camera view.
ToolButtonSettings buttonSettings () const
 Returns the current toolbar button visibility settings.
virtual ConstPointer< Cameracamera () const override
 Returns a read-only pointer to the Camera.
virtual DynamicPointer< Cameracamera () override
 Returns a mutable pointer to the Camera.
bool event (QEvent *event) override
 Processes a Qt event.
virtual QImage grabFramebuffer ()
 Captures the current frame as a QImage.
virtual UUID id () const override
 Returns the unique identifier for this camera view.
ButtoninvertImageButton () const
 Returns the invert colors button.
void leaveEvent (QEvent *leave) override
 Handles the mouse leaving the widget area.
ButtonlightButton () const
 Returns the light toggle button.
virtual QPointer< QWidget > lightingSliderWidget ()
 Returns the lighting brightness slider widget.
LogPtr log () const
 Returns the current logger.
fltp08 maxZoomOut () const
 Returns the maximum zoom-out factor for this camera.
void mediaEnd ()
 Slot called when media playback reaches the end.
void mediaError ()
 Slot called when a media playback error occurs.
void mediaOpening ()
 Slot called when media is opening/buffering.
void mediaPlayingSlot ()
 Slot called when media playback begins.
void mediaStateChanged ()
 Slot called when the media player state changes.
void mediaStopped ()
 Slot called when media playback is stopped.
void mouseReleaseEvent (QMouseEvent *releaseEvent) override
 Handles mouse release events for the camera view.
RecordingState recordingState () const override
 Returns the current recording state.
ButtonrefreshButton () const
 Returns the refresh/reconnect button.
virtual void removeWidget (const QPointer< QWidget > &button) override
 Removes an overlay widget from the camera view.
void requestLight (bool light_on)
 Emitted to request turning the camera light on or off.
void requestLightBrightness (fltp04 percent)
 Emitted to request a specific light brightness level.
virtual void resetToolRibbon () override
 Resets the tool ribbon to its default configuration.
File screenshotPath () const
 Returns the configured screenshot output path.
void setAutoRotateCamera (bool auto_rotate)
 Enables or disables automatic camera rotation based on device orientation.
void setButtonSettings (const ToolButtonSettings &settings)
 Applies new toolbar button visibility settings.
void setConnectingIcon (const StringView &image)
 Sets the icon shown while the camera is connecting.
void setConnectingMessage (const TranslatedString &message)
 Sets the message displayed while the camera is connecting.
void setErrorIcon (const StringView &image)
 Sets the icon shown when the camera is in an error state.
void setErrorState (bool is_in_error_state)
 Sets whether the camera is in an error state, updating the display accordingly.
virtual void setIconSizeMultiplier (fltp04 multiplier) override
 Sets a multiplier for toolbar icon sizes.
void setLightBrightness (fltp04 percent)
 Sets the brightness level of the camera light.
void setLog (LogPtr log)
 Sets the logger for this camera view.
void setReadyForImageCapture (bool ready)
 Sets whether the camera is ready to capture an image.
void setRecordingElapsedTime (const TimeSpan &span)
 Updates the displayed recording elapsed time.
virtual void setRecordingState (RecordingState recording_state)
 Sets the video recording state and updates the UI accordingly.
void setScreenshotFileName (const StringView &file_name)
 Sets the base file name used for screenshot files.
void setScreenshotPath (const File &file)
 Sets the file path used for saving screenshots.
void setSettingsVisible (bool visible, PopupInfo info)
 Shows or hides the settings widget.
void setSettingsWidget (QWidget *settings_widget, bool is_popup=false)
 Sets a custom settings widget for camera configuration.
virtual void setSwapMode (SwapMode mode) override
 Sets the buffer swap mode for rendering.
virtual void setTouchTheme (bool touch_theme) override
 Enables or disables the touch-optimized theme.
void setupForCaptureMode (bool capture_mode)
 Configures the view for image capture mode, adjusting UI elements.
void setVideoOutputPath (const File &file)
 Sets the file path used for saving recorded video.
QWidget * stack () const
 Returns the stacked widget used for switching between view modes.
virtual void startNewRecording (StringView file_name=StringView())
 Begins a new video recording session.
virtual void stopAndSaveRecording ()
 Stops the current recording and saves the video file.
void takeImage ()
 Captures a screenshot from the current camera frame.
ButtontakeImageButton () const
 Returns the screenshot capture button.
void tryToConnect ()
 Attempts to establish a connection to the camera source.
virtual void updateView () override
 Refreshes the camera view display.
File videoPath () const
 Returns the configured video output path.
void windowCapturedEvent (QEvent *event)
 Handles events forwarded from the embedded window container.

Public Attributes

BasicThreadm_start_thread
 Thread for asynchronous VNC connection startup.

Protected Member Functions

void createVNCInstance ()
 Creates and initializes the VNC client connection.
virtual ToolButtonSettings defaultButtonSettings () const override
 Returns the default toolbar button visibility settings for this camera type.
virtual void invertScreenColors (bool) override
 Inverts the screen colors for the camera display.
QPointer< QWidget > settingsWidget () override
 Returns the settings widget for this camera view.
virtual void showToolRibbon (bool show_ribbon) override
 Shows or hides the tool ribbon overlay.
virtual bool takeImage (const File &) override
 Captures a single image and saves it to the specified file.
Protected Member Functions inherited from PhysicalCameraView
 PhysicalCameraView ()
 Default constructor for subclass use only.
 PhysicalCameraView (const DynamicPointer< Camera > &camera, QWidget *parent=nullptr)
 Constructs a PhysicalCameraView for the given camera.
virtual QWidget * cameraToolbar () override
 Returns the camera toolbar widget.
void closeEvent (QCloseEvent *event) override
 Handles the widget close event, performing cleanup.
void displayCamera (QCustomStackedWidget::StackAnimationDirection=QCustomStackedWidget::e_automatic)
 Displays the live camera panel.
virtual void displayCurrentViewTab (QCustomStackedWidget::StackAnimationDirection=QCustomStackedWidget::e_automatic)
 Switches to the appropriate view tab based on the current view mode.
void displayError (const TranslatedString &error, QCustomStackedWidget::StackAnimationDirection=QCustomStackedWidget::e_automatic)
 Displays the error panel with a message.
void displayFinder (QCustomStackedWidget::StackAnimationDirection=QCustomStackedWidget::e_automatic)
 Displays the connection/finder panel.
virtual bool finishRecord (File file)
 Finalizes a recording and saves the output file.
virtual void handleError ()
 Handles a camera error by updating the display and notifying the user.
virtual int heightForWidth (int w) const override
 Returns the preferred height for the given width, maintaining aspect ratio.
virtual void init ()
 Initializes the UI, toolbar, and internal state after construction.
void keyPressEvent (QKeyEvent *event) override
 Handles key press events for camera shortcuts.
void keyReleaseEvent (QKeyEvent *event) override
 Handles key release events.
void networkRequestReady ()
 Handles a completed network request for the camera stream.
void pause ()
 Pauses the camera stream playback.
virtual bool pauseRecord (bool paused, const File &file)
 Pauses or resumes the current recording.
void processCapturedImage (const QPixmap &img)
 Processes a captured image for saving or display.
virtual File recordPath (StringView name, bool is_finished_recording) const
 Computes the file path for a recording.
void setExposureCompensation (int index)
 Sets the exposure compensation level.
void setMuted (bool)
 Mutes or unmutes the audio from the camera stream.
void setupRulers ()
 Creates and configures the measurement ruler overlays.
virtual QSize sizeHint () const override
 Returns the recommended size for this widget.
void sourceChanged ()
 Handles a change in the camera source.
QCustomStackedWidgetstackedWidget () const
 Returns the stacked widget used for switching between view panels.
void startCamera ()
 Starts the camera stream.
virtual bool startRecord (const File &file)
 Begins recording video to the specified file.
void stop ()
 Stops the camera stream completely.
void stopCamera ()
 Stops the camera stream.
void toggleLock ()
 Toggles the lock state of the camera controls.
void updateCameraRotation ()
 Updates the camera rotation based on device orientation or user settings.
void updateCameraWindowSize ()
 Resizes the camera rendering surface to match the widget dimensions.
void updateRulers ()
 Updates the ruler display to match the current zoom and position.
WindowContainerwindowContainer () const
 Returns the window container holding the camera rendering surface.

Additional Inherited Members

Public Types inherited from PhysicalCameraView
enum  ViewMode { e_loading , e_error , e_camera }
 Describes the current display mode of the camera view. More...
Static Public Member Functions inherited from PhysicalCameraView
static void ResetSettingsToDefaults ()
 Resets all camera-related application settings to their defaults.
static Buffer< PhysicalCameraView::OutputCodecSupportedOutputCodecs ()
 Returns a list of all video codecs supported by the current backend.
static Buffer< PhysicalCameraView::OutputMuxSupportedOutputMuxes ()
 Returns a list of all container/muxer formats supported by the current backend.
Static Public Attributes inherited from PhysicalCameraView
static ApplicationOption< TimeSpandefault_buffer_time
 Default video buffer duration.
static ApplicationOption< Angle< fltp08 > > default_camera_angle_offset
 Default camera rotation angle offset.
static ApplicationOption< Stringdefault_camera_server_location
 Default camera server URL or address.
static ApplicationOption< Stringdefault_camera_server_password
 Default camera server password.
static ApplicationOption< uint04default_output_bitrate
 Default video output bitrate.
static ApplicationOption< Stringdefault_output_codec
 Default video codec.
static ApplicationOption< Stringdefault_output_extension
 Default video file extension.
static ApplicationOption< uint04default_output_fps
 Default video output frames per second.
static ApplicationOption< Stringdefault_output_mux
 Default video container/muxer format.
static Resource< Filedefault_screenshot_folder
 Default folder for saving screenshots.
static Resource< Filedefault_video_folder
 Default folder for saving recorded videos.
static Dictionary< UUID, PhysicalCameraView * > s_active_logging
 Registry of camera views with active logging.
static ApplicationOption< bool > write_video_to_memory
 Whether to buffer video in memory before writing to disk.
Protected Attributes inherited from PhysicalCameraView
File m_active_record_path
 The file path of the active recording.
bool m_application_exiting = false
 Whether the application is shutting down.
QPointer< QCustomSliderm_brightness_slider
 The slider controlling light brightness.
QPointer< QWidget > m_brightness_slider_widget
 Container widget for the brightness slider.
DynamicPointer< Cameram_camera
 The camera being displayed.
String m_connecting_icon
 Resource identifier for the connecting state icon.
TranslatedString m_connecting_message
 The message displayed while connecting.
String m_error_icon
 Resource identifier for the error state icon.
String m_file_name
 The current recording file name.
bool m_is_black_and_white = false
 Whether the display is in black and white mode.
bool m_is_capturing_image = false
 Whether an image capture is in progress.
bool m_is_in_error_state = false
 Whether the camera is in an error state.
bool m_is_inverted_color = false
 Whether the display colors are inverted.
bool m_is_playing = false
 Whether the camera stream is currently playing.
TranslatedString m_last_error
 The most recent error message.
bool m_lock_controls = false
 Whether the camera controls are locked.
LogPtr m_log
 Logger for camera events and errors.
String m_output_codec
 The active video codec identifier.
String m_output_mux
 The active video container/muxer identifier.
RecordingState m_recording_state = RecordingState::e_stopped
 The current video recording state.
Buttonm_ruler_button = nullptr
 The button to toggle ruler visibility.
QPointer< CameraRulerMenum_ruler_combo
 The ruler configuration menu widget.
String m_screenshot_file_name
 Base file name template for screenshots.
File m_screenshot_path
 The directory path for saving screenshots.
bool m_settings_popup = true
 Whether the settings widget displays as a popup.
QPointer< QWidget > m_settings_widget
 The optional settings widget for camera configuration.
bool m_show_edge_ruler = false
 Whether the side ruler is visible.
bool m_show_top_ruler = false
 Whether the top ruler is visible.
Rulerm_side_ruler = nullptr
 The side measurement ruler overlay.
QTimer * m_timeout_timer = nullptr
 Timer for connection timeout detection.
ToolButtonSettings m_tool_button_settings
 Current toolbar button visibility configuration.
bool m_tool_temp_showing = false
 Whether the toolbar is temporarily shown on hover.
Toolbarm_toolbar = nullptr
 The camera toolbar widget.
Rulerm_top_ruler = nullptr
 The top measurement ruler overlay.
File m_video_path
 The directory path for saving videos.
ViewMode m_view_mode = e_loading
 The current display mode of the view.
WindowContainerm_view_panel
 The container holding the camera rendering surface.
Ui::PhysicalCameraViewUI * ui
 The auto-generated UI form.

Detailed Description

A PhysicalCameraView that displays a remote desktop via the VNC protocol, allowing users to view and interact with a remote machine's screen.


Definition at line 16 of file VncCameraView.h.

Constructor & Destructor Documentation

◆ VncCameraView()

VncCameraView::VncCameraView ( DynamicPointer< Camera > & camera,
QWidget * parent = nullptr )

Constructs a VNC camera view for the given camera.

Parameters
[in]cameraThe camera object providing connection info.
[in]parentOptional parent widget.

References VncCameraView(), and PhysicalCameraView::camera().

Member Function Documentation

◆ defaultButtonSettings()

virtual ToolButtonSettings VncCameraView::defaultButtonSettings ( ) const
overrideprotectedvirtual

Returns the default toolbar button visibility settings for this camera type.

Returns
The default ToolButtonSettings.

Reimplemented from PhysicalCameraView.

◆ invertScreenColors()

virtual void VncCameraView::invertScreenColors ( bool invert)
inlineoverrideprotectedvirtual

Inverts the screen colors for the camera display.

Parameters
[in]invertWhether to invert colors.

Reimplemented from PhysicalCameraView.

Definition at line 40 of file VncCameraView.h.

◆ setCameraSource()

virtual bool VncCameraView::setCameraSource ( const StringView & camera_info)
overridevirtual

Sets the camera source by connection string or identifier.

Parameters
[in]camera_infoThe source identifier or URL.
Returns
True if the source was set successfully.

Reimplemented from PhysicalCameraView.

◆ setPassword()

virtual void VncCameraView::setPassword ( const StringView & password)
virtual

Sets the VNC authentication password.

Parameters
[in]passwordThe password to use for VNC authentication.

◆ setResizeTcpServer()

virtual void VncCameraView::setResizeTcpServer ( TcpServer * server,
fltp08 size_multiplier )
virtual

Associates a TCP server for dynamic window resizing over the VNC connection.

Parameters
[in]serverThe TCP server managing the resize protocol.
[in]size_multiplierScale factor applied to resize requests.

◆ settingsWidget()

QPointer< QWidget > VncCameraView::settingsWidget ( )
overrideprotectedvirtual

Returns the settings widget for this camera view.

Returns
A QPointer to the settings widget.

Reimplemented from PhysicalCameraView.

◆ showToolRibbon()

virtual void VncCameraView::showToolRibbon ( bool show_ribbon)
overrideprotectedvirtual

Shows or hides the tool ribbon overlay.

Parameters
[in]show_ribbonWhether to show the ribbon.

Reimplemented from PhysicalCameraView.

◆ takeImage()

virtual bool VncCameraView::takeImage ( const File & file)
inlineoverrideprotectedvirtual

Captures a single image and saves it to the specified file.

Parameters
[in]fileThe output file path.
Returns
True if the image was captured successfully.

Reimplemented from PhysicalCameraView.

Definition at line 39 of file VncCameraView.h.


The documentation for this class was generated from the following file: