mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-16 19:28:14 -06:00
Support custom IP camera (#3415)
* Support custom IP camera Allow adding custom IP camera source while keeping possible built-in bambulab camera also functional and add button to switch between them. This uses WebView widget to show the stream. Upon loading the page, javascript is used to remove native controls and scroll- bars for aesthetic reasons. * Add partial support for PiP video HTMLVideoElement supports picture-in-picture video but the dedicated control is hidden in this implementation to have more integrated look in OrcaSlicer. Add right-click listener to the camera switch icon that opens the video element in a PiP window. Only works when the video is in <video> HTML element, so for example MJPEG streams in <img> element won't work.
This commit is contained in:
parent
d26513e635
commit
b7b22eb78f
6 changed files with 346 additions and 0 deletions
|
@ -287,6 +287,7 @@ protected:
|
|||
ScalableBitmap m_bitmap_timelapse_off;
|
||||
ScalableBitmap m_bitmap_vcamera_on;
|
||||
ScalableBitmap m_bitmap_vcamera_off;
|
||||
ScalableBitmap m_bitmap_switch_camera;
|
||||
|
||||
/* title panel */
|
||||
wxPanel * media_ctrl_panel;
|
||||
|
@ -307,6 +308,7 @@ protected:
|
|||
wxStaticBitmap *m_bitmap_sdcard_img;
|
||||
wxStaticBitmap *m_bitmap_static_use_time;
|
||||
wxStaticBitmap *m_bitmap_static_use_weight;
|
||||
wxStaticBitmap* m_camera_switch_button;
|
||||
|
||||
|
||||
wxMediaCtrl2 * m_media_ctrl;
|
||||
|
@ -326,6 +328,7 @@ protected:
|
|||
ScalableButton *m_button_pause_resume;
|
||||
ScalableButton *m_button_abort;
|
||||
Button * m_button_clean;
|
||||
wxWebView * m_custom_camera_view{nullptr};
|
||||
|
||||
wxStaticText * m_text_tasklist_caption;
|
||||
|
||||
|
@ -410,6 +413,13 @@ protected:
|
|||
virtual void on_axis_ctrl_z_down_10(wxCommandEvent &event) { event.Skip(); }
|
||||
virtual void on_axis_ctrl_e_up_10(wxCommandEvent &event) { event.Skip(); }
|
||||
virtual void on_axis_ctrl_e_down_10(wxCommandEvent &event) { event.Skip(); }
|
||||
void on_camera_source_change(wxCommandEvent& event);
|
||||
void handle_camera_source_change();
|
||||
void remove_controls();
|
||||
void on_webview_navigating(wxWebViewEvent& evt);
|
||||
void on_camera_switch_toggled(wxMouseEvent& event);
|
||||
void toggle_custom_camera();
|
||||
void toggle_builtin_camera();
|
||||
|
||||
public:
|
||||
StatusBasePanel(wxWindow * parent,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue