-
Notifications
You must be signed in to change notification settings - Fork 227
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add procedure handler based API #431
base: master
Are you sure you want to change the base?
Conversation
93d5fa1
to
5973c08
Compare
5973c08
to
3f87549
Compare
I think the approach is correct and barring some concerns regarding the name ( As for the API - how can we make this API available as part of Because plugins need to be built out-of-tree, the browser API functions need to be available via the frontend API only, so it needs to be exposed there and needs to be compiled and linked without the browser plugin present. |
This design is meant to make it unrelated to
This API does not need/depend on the frontend API. |
Got it. In that case this PR cannot supersede the PRs mentioned in the OP - the goal of at least one of those is to allow external plugins to create and manage their own browser docks. As those plugins only link with I still think it's worthwhile to have an API for internal use that does not require internal knowledge of the |
Beside the native flag issue, because of the QCefWidget in a window/dock without the native flag can go wrong. |
So with this merged, a leaner frontend API can be based on it you mean? |
No need for new frontend API.
Like I said earlier, there is an because of the missing native flag but it's inside the Frontend API that the issue should be solved. Edit: I have made this tytan652/obs-studio@5ef1362 in the past to fix the flag issue which rely to put a custom property in the given widget which is checked by the frontend API. This flag thing is a nightmare. |
How can a plugin do that without access to the |
The API header (with PhCef* classes) is "public", no change in CMake was made to install it for now. |
That's what I was hinting at - |
The header is not part of the obs-browser CMake module, for now it's a standalone interface. |
Ah my bad - that header is not part of this PR then but would be added in an associated obs-studio PR? |
|
3f87549
to
4b0301c
Compare
f948be2
to
98c65cd
Compare
The API header is now installed with other OBS Studio headers and I changed the namespace of the API classes ( Edit: Sorry I made a typo it was "now" not "not". |
98c65cd
to
e291f5b
Compare
4ceb23d
to
9680ac2
Compare
Update CMake part to match obsproject/obs-websocket#1196 CMake as Pat approved it, like I said there obsproject/obs-websocket#1196 (comment). |
9680ac2
to
18009b4
Compare
18009b4
to
966884c
Compare
966884c
to
5fba107
Compare
Description
Warning
Not meant to be used by third-party, if they do it's at their own risk as if it's an unstable API.I would like some feedback before stating that it can be used by third-party.
Relies on:
Adds a procedure handler that enables the use of obs-browser feature (only panels now) outside of the plugin itself without having to rely on symbols search inside the plugin file.
TODO:
Motivation and Context
Inspired by how obs-websocket did its API and by the fact that implementing an browser API in the frontend-api looks more and more like a bad idea. I made a procedure handler based API for obs-browser.
Related to the wish to split service integration from the UI as plugins, but this is not strictly bond to services.
How Has This Been Tested?
--component Development
adds the headerTypes of changes
Checklist: