export.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <Windows.h>
  3. #ifdef AMRECORDER_IMPORT
  4. #define AMRECORDER_API extern "C" __declspec(dllimport)
  5. #else
  6. #define AMRECORDER_API extern "C" __declspec(dllexport)
  7. #endif
  8. namespace am {
  9. class wgc_session
  10. {
  11. public:
  12. struct wgc_session_frame
  13. {
  14. unsigned int width;
  15. unsigned int height;
  16. unsigned int row_pitch;
  17. const unsigned char *data;
  18. };
  19. class wgc_session_observer
  20. {
  21. public:
  22. virtual ~wgc_session_observer() {}
  23. virtual void on_frame(const wgc_session_frame &frame) = 0;
  24. };
  25. public:
  26. virtual void release() = 0;
  27. virtual int initialize(HWND hwnd) = 0;
  28. virtual int initialize(HMONITOR hmonitor) = 0;
  29. virtual void register_observer(wgc_session_observer *observer) = 0;
  30. virtual int start() = 0;
  31. virtual int stop() = 0;
  32. virtual int pause() = 0;
  33. virtual int resume() = 0;
  34. protected:
  35. virtual ~wgc_session() {};
  36. };
  37. } // namespace am
  38. AMRECORDER_API bool wgc_is_supported();
  39. AMRECORDER_API am::wgc_session *wgc_create_session();