obs-frontend-internal.hpp 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. #pragma once
  2. #include "obs-frontend-api.h"
  3. #include <vector>
  4. #include <string>
  5. struct obs_frontend_callbacks {
  6. virtual ~obs_frontend_callbacks() {}
  7. virtual void *obs_frontend_get_main_window(void) = 0;
  8. virtual void *obs_frontend_get_main_window_handle(void) = 0;
  9. virtual void *obs_frontend_get_system_tray(void) = 0;
  10. virtual void
  11. obs_frontend_get_scenes(struct obs_frontend_source_list *sources) = 0;
  12. virtual obs_source_t *obs_frontend_get_current_scene(void) = 0;
  13. virtual void obs_frontend_set_current_scene(obs_source_t *scene) = 0;
  14. virtual void obs_frontend_get_transitions(
  15. struct obs_frontend_source_list *sources) = 0;
  16. virtual obs_source_t *obs_frontend_get_current_transition(void) = 0;
  17. virtual void
  18. obs_frontend_set_current_transition(obs_source_t *transition) = 0;
  19. virtual int obs_frontend_get_transition_duration(void) = 0;
  20. virtual void obs_frontend_set_transition_duration(int duration) = 0;
  21. virtual void obs_frontend_release_tbar(void) = 0;
  22. virtual int obs_frontend_get_tbar_position(void) = 0;
  23. virtual void obs_frontend_set_tbar_position(int position) = 0;
  24. virtual void obs_frontend_get_scene_collections(
  25. std::vector<std::string> &strings) = 0;
  26. virtual char *obs_frontend_get_current_scene_collection(void) = 0;
  27. virtual void
  28. obs_frontend_set_current_scene_collection(const char *collection) = 0;
  29. virtual bool obs_frontend_add_scene_collection(const char *name) = 0;
  30. virtual void
  31. obs_frontend_get_profiles(std::vector<std::string> &strings) = 0;
  32. virtual char *obs_frontend_get_current_profile(void) = 0;
  33. virtual char *obs_frontend_get_current_profile_path(void) = 0;
  34. virtual void obs_frontend_set_current_profile(const char *profile) = 0;
  35. virtual void obs_frontend_create_profile(const char *name) = 0;
  36. virtual void obs_frontend_duplicate_profile(const char *name) = 0;
  37. virtual void obs_frontend_delete_profile(const char *profile) = 0;
  38. virtual void obs_frontend_streaming_start(void) = 0;
  39. virtual void obs_frontend_streaming_stop(void) = 0;
  40. virtual bool obs_frontend_streaming_active(void) = 0;
  41. virtual void obs_frontend_recording_start(void) = 0;
  42. virtual void obs_frontend_recording_stop(void) = 0;
  43. virtual bool obs_frontend_recording_active(void) = 0;
  44. virtual void obs_frontend_recording_pause(bool pause) = 0;
  45. virtual bool obs_frontend_recording_paused(void) = 0;
  46. virtual bool obs_frontend_recording_split_file(void) = 0;
  47. virtual bool obs_frontend_recording_add_chapter(const char *name) = 0;
  48. virtual void obs_frontend_replay_buffer_start(void) = 0;
  49. virtual void obs_frontend_replay_buffer_save(void) = 0;
  50. virtual void obs_frontend_replay_buffer_stop(void) = 0;
  51. virtual bool obs_frontend_replay_buffer_active(void) = 0;
  52. virtual void *obs_frontend_add_tools_menu_qaction(const char *name) = 0;
  53. virtual void obs_frontend_add_tools_menu_item(const char *name,
  54. obs_frontend_cb callback,
  55. void *private_data) = 0;
  56. virtual void *obs_frontend_add_dock(void *dock) = 0;
  57. virtual bool obs_frontend_add_dock_by_id(const char *id,
  58. const char *title,
  59. void *widget) = 0;
  60. virtual void obs_frontend_remove_dock(const char *id) = 0;
  61. virtual bool obs_frontend_add_custom_qdock(const char *id,
  62. void *dock) = 0;
  63. virtual void
  64. obs_frontend_add_event_callback(obs_frontend_event_cb callback,
  65. void *private_data) = 0;
  66. virtual void
  67. obs_frontend_remove_event_callback(obs_frontend_event_cb callback,
  68. void *private_data) = 0;
  69. virtual obs_output_t *obs_frontend_get_streaming_output(void) = 0;
  70. virtual obs_output_t *obs_frontend_get_recording_output(void) = 0;
  71. virtual obs_output_t *obs_frontend_get_replay_buffer_output(void) = 0;
  72. virtual config_t *obs_frontend_get_profile_config(void) = 0;
  73. OBS_DEPRECATED virtual config_t *
  74. obs_frontend_get_global_config(void) = 0;
  75. virtual config_t *obs_frontend_get_app_config(void) = 0;
  76. virtual config_t *obs_frontend_get_user_config(void) = 0;
  77. virtual void obs_frontend_open_projector(const char *type, int monitor,
  78. const char *geometry,
  79. const char *name) = 0;
  80. virtual void obs_frontend_save(void) = 0;
  81. virtual void obs_frontend_defer_save_begin(void) = 0;
  82. virtual void obs_frontend_defer_save_end(void) = 0;
  83. virtual void
  84. obs_frontend_add_save_callback(obs_frontend_save_cb callback,
  85. void *private_data) = 0;
  86. virtual void
  87. obs_frontend_remove_save_callback(obs_frontend_save_cb callback,
  88. void *private_data) = 0;
  89. virtual void
  90. obs_frontend_add_preload_callback(obs_frontend_save_cb callback,
  91. void *private_data) = 0;
  92. virtual void
  93. obs_frontend_remove_preload_callback(obs_frontend_save_cb callback,
  94. void *private_data) = 0;
  95. virtual void obs_frontend_push_ui_translation(
  96. obs_frontend_translate_ui_cb translate) = 0;
  97. virtual void obs_frontend_pop_ui_translation(void) = 0;
  98. virtual obs_service_t *obs_frontend_get_streaming_service(void) = 0;
  99. virtual void
  100. obs_frontend_set_streaming_service(obs_service_t *service) = 0;
  101. virtual void obs_frontend_save_streaming_service() = 0;
  102. virtual bool obs_frontend_preview_program_mode_active(void) = 0;
  103. virtual void obs_frontend_set_preview_program_mode(bool enable) = 0;
  104. virtual void obs_frontend_preview_program_trigger_transition(void) = 0;
  105. virtual bool obs_frontend_preview_enabled(void) = 0;
  106. virtual void obs_frontend_set_preview_enabled(bool enable) = 0;
  107. virtual obs_source_t *obs_frontend_get_current_preview_scene(void) = 0;
  108. virtual void
  109. obs_frontend_set_current_preview_scene(obs_source_t *scene) = 0;
  110. virtual void on_load(obs_data_t *settings) = 0;
  111. virtual void on_preload(obs_data_t *settings) = 0;
  112. virtual void on_save(obs_data_t *settings) = 0;
  113. virtual void on_event(enum obs_frontend_event event) = 0;
  114. virtual void obs_frontend_take_screenshot() = 0;
  115. virtual void
  116. obs_frontend_take_source_screenshot(obs_source_t *source) = 0;
  117. virtual obs_output_t *obs_frontend_get_virtualcam_output(void) = 0;
  118. virtual void obs_frontend_start_virtualcam(void) = 0;
  119. virtual void obs_frontend_stop_virtualcam(void) = 0;
  120. virtual bool obs_frontend_virtualcam_active(void) = 0;
  121. virtual void obs_frontend_reset_video(void) = 0;
  122. virtual void
  123. obs_frontend_open_source_properties(obs_source_t *source) = 0;
  124. virtual void obs_frontend_open_source_filters(obs_source_t *source) = 0;
  125. virtual void
  126. obs_frontend_open_source_interaction(obs_source_t *source) = 0;
  127. virtual void
  128. obs_frontend_open_sceneitem_edit_transform(obs_sceneitem_t *item) = 0;
  129. virtual char *obs_frontend_get_current_record_output_path(void) = 0;
  130. virtual const char *
  131. obs_frontend_get_locale_string(const char *string) = 0;
  132. virtual bool obs_frontend_is_theme_dark(void) = 0;
  133. virtual char *obs_frontend_get_last_recording(void) = 0;
  134. virtual char *obs_frontend_get_last_screenshot(void) = 0;
  135. virtual char *obs_frontend_get_last_replay(void) = 0;
  136. virtual void obs_frontend_add_undo_redo_action(const char *name,
  137. const undo_redo_cb undo,
  138. const undo_redo_cb redo,
  139. const char *undo_data,
  140. const char *redo_data,
  141. bool repeatable) = 0;
  142. };
  143. EXPORT void
  144. obs_frontend_set_callbacks_internal(obs_frontend_callbacks *callbacks);