obs-frontend-internal.hpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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_scenes(
  10. struct obs_frontend_source_list *sources)=0;
  11. virtual obs_source_t *obs_frontend_get_current_scene(void)=0;
  12. virtual void obs_frontend_set_current_scene(obs_source_t *scene)=0;
  13. virtual void obs_frontend_get_transitions(
  14. struct obs_frontend_source_list *sources)=0;
  15. virtual obs_source_t *obs_frontend_get_current_transition(void)=0;
  16. virtual void obs_frontend_set_current_transition(
  17. obs_source_t *transition)=0;
  18. virtual void obs_frontend_get_scene_collections(
  19. std::vector<std::string> &strings)=0;
  20. virtual char *obs_frontend_get_current_scene_collection(void)=0;
  21. virtual void obs_frontend_set_current_scene_collection(
  22. const char *collection)=0;
  23. virtual void obs_frontend_get_profiles(
  24. std::vector<std::string> &strings)=0;
  25. virtual char *obs_frontend_get_current_profile(void)=0;
  26. virtual void obs_frontend_set_current_profile(const char *profile)=0;
  27. virtual void obs_frontend_streaming_start(void)=0;
  28. virtual void obs_frontend_streaming_stop(void)=0;
  29. virtual bool obs_frontend_streaming_active(void)=0;
  30. virtual void obs_frontend_recording_start(void)=0;
  31. virtual void obs_frontend_recording_stop(void)=0;
  32. virtual bool obs_frontend_recording_active(void)=0;
  33. virtual void obs_frontend_replay_buffer_start(void)=0;
  34. virtual void obs_frontend_replay_buffer_stop(void)=0;
  35. virtual bool obs_frontend_replay_buffer_active(void)=0;
  36. virtual void *obs_frontend_add_tools_menu_qaction(const char *name)=0;
  37. virtual void obs_frontend_add_tools_menu_item(const char *name,
  38. obs_frontend_cb callback, void *private_data)=0;
  39. virtual void obs_frontend_add_event_callback(
  40. obs_frontend_event_cb callback, void *private_data)=0;
  41. virtual void obs_frontend_remove_event_callback(
  42. obs_frontend_event_cb callback, void *private_data)=0;
  43. virtual obs_output_t *obs_frontend_get_streaming_output(void)=0;
  44. virtual obs_output_t *obs_frontend_get_recording_output(void)=0;
  45. virtual obs_output_t *obs_frontend_get_replay_buffer_output(void)=0;
  46. virtual config_t *obs_frontend_get_profile_config(void)=0;
  47. virtual config_t *obs_frontend_get_global_config(void)=0;
  48. virtual void obs_frontend_save(void)=0;
  49. virtual void obs_frontend_add_save_callback(
  50. obs_frontend_save_cb callback, void *private_data)=0;
  51. virtual void obs_frontend_remove_save_callback(
  52. obs_frontend_save_cb callback, void *private_data)=0;
  53. virtual void obs_frontend_push_ui_translation(
  54. obs_frontend_translate_ui_cb translate)=0;
  55. virtual void obs_frontend_pop_ui_translation(void)=0;
  56. virtual void obs_frontend_set_streaming_service(
  57. obs_service_t *service)=0;
  58. virtual obs_service_t *obs_frontend_get_streaming_service(void)=0;
  59. virtual void obs_frontend_save_streaming_service()=0;
  60. virtual void on_load(obs_data_t *settings)=0;
  61. virtual void on_save(obs_data_t *settings)=0;
  62. virtual void on_event(enum obs_frontend_event event)=0;
  63. };
  64. EXPORT void obs_frontend_set_callbacks_internal(
  65. obs_frontend_callbacks *callbacks);