The C# Wrapper has implementation for IMeetingBreakoutRoomsController,
but how can the IBOCreator be used ?
Using version 5.0.24433.0616.
The C# Wrapper has implementation for IMeetingBreakoutRoomsController,
but how can the IBOCreator be used ?
Using version 5.0.24433.0616.
Hi @bm.erikstad,
Thanks for the post. The C# wrapper is a wrapper of the Windows SDK so the usage is the same as those in the Windows SDK. You could leverage the interfaces in the https://zoom.github.io/zoom-sdk-windows/class_i_meeting_b_o_controller.html and the callbacks in https://zoom.github.io/zoom-sdk-windows/class_i_meeting_b_o_controller_event.html to implement the Breakout room feature.
Here are the interfaces that you could use based on your role in the meeting:
Hope this helps. Thanks!
I don’t understand how to access IBOCreator through C#. I can create a controller but I can’t access the IBO Creator in the class
ZOOM_SDK_DOTNET_WRAP.IMeetingBreakoutRoomsControllerDotNetWrap BO_controller=ZOOM_SDK_DOTNET_WRAP.CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingBreakoutRoomsController();
@Michael_Condon
Do you mind helping with this?
Hey @ekaram,
It is good to see you again
The IBOCreator is defined in the second breakout room interface header file included in the c++ version of the sdk called “meeting_breakout_rooms_interface_v2.h”. As of right now, the wrapper uses the old breakout room header file “meeting_breakout_rooms_interface.h”. I am hoping that the engineers will be able to update this soon, but for now you will need to add that header file to the wrapper manually to use the newer breakout room interfaces like IBOCreator. Inside the wrapper there is a meeting_service_wrap.h file that is including the old breakout room header file, this is where you would include the v2 header file. Then you will have to update the meeting_breakout_rooms_wrap files to add in the new interfaces defined in the v2 header file.
Thanks!
Michael
For those who need a bit more help
meeting_service_wrap.h
can be found in the directory below
zoom_sdk_c_sharp_wrap\wrap\meeting_service_wrap.h
Now in my version (v5.4.54802.0124)
This file does not include meeting_breakout_rooms_interface.h
explicitly.
It does include a file called #include common_include.h
If we look at common_include.h
, we can find the include for “meeting_breakout_rooms_interface.h”
This is set as the following
#include “…/h/meeting_service_components/meeting_breakout_rooms_interface.h”
I think it would best to add to the common include file.
The file we want to add is '“meeting_breakout_rooms_interface_v2.h”
it was added as such
#include “…/h/meeting_service_components/meeting_breakout_rooms_interface_v2.h”
Now we need to edit the meeting_breakout_rooms_wrap.h
and the meeting_breakout_rooms_wrap.cpp
file to properly wrap the new functions and use cases.
This can be found in this directory
zoom_sdk_c_sharp_wrap\wrap\meeting_service_components_wrap\
@Michael_Condon
I don’t understand what is the best way to edit these files. It seems pretty convoluted to me. Is there a tutorial I can find? I don’t understand how the wrapping works
Update I figure out that the folder labeled
zoom_sdk_c_sharp_wrap
has its own visual studio sln. Edits need to happen thereafter opening the solution. Then right-click build to update the .dll (We need to run in release mode to create the dll
For now we have been trying to follow along pull requests that were done before to the C# wrapper
https://github.com/zoom/zoom-c-sharp-wrapper/pulls
Hey @ekaram,
Thank you for providing this. I understand that the C# wrapper process is not ideal. We are working internally to improve how C# will be supported in the future. We are considering providing tutorials for modifying the wrapper locally, however different types of features require different types of modifications to the wrapper.
Thanks!
Michael
Alright for my use case should I be editing all 4 files?
wrap\
meeting_breakout_rooms_dotnet_wrap.cpp
meeting_breakout_rooms_dotnet_wrap.h
wrap\meeting_service_components_wrap\
meeting_breakout_rooms_wrap.cpp
meeting_breakout_rooms_wrap.h
I’m lost which is for what
Hey @ekaram,
After trying to implement this myself, I realized the weight of the lift necessary to add this feature in manually. Another developer is also trying to implement breakout rooms in C# as well so I am building an updated version of the wrapper that will implement all of the features in the V2 version of breakout rooms, then I will provide the changes here. In the meantime, the Zoom Marketplace has been updated to provide the latest version of the C# wrapper. This version is the version I have been working with.
Thanks!
Michael
Thank you so much for this!!
Are there any quick workarounds that might be useful to do? We are trying to build a prototype so we are open to temporary fixes.
hi, any updates? Can we contribute in any way?
I believe having BO functionality is (will be) necessary for all wrapper users
Hey @p.ceccanti and @ekaram,
I am very close to finishing the updated files. Sorry for the delay, it has been a busy couple weeks.
Stay tuned.
Thanks!
Michael
Hey @ekaram,
Yes, was just about to update this thread actually! I have integrated the interfaces into the wrapper, however there seems to be several bugs with the latest version. I am trying to track down whether the bugs are in my implementation of the wrapper or in the SDK itself. I can provide you with my version now, or I can provide you with a version once I have completed more testing.
Thanks!
Michael
Hey @Michael_Condon.
That sounds great!!!
If the interface works we don’t mind other bugs. There are bugs in the version we currently have so it’s not much of a deal-breaker.
Either way, we can always revert back if thing go too astray
Please send us your version when you get the chance
Hey @ekaram @p.ceccanti @lauren.olphert,
Thanks for your patience with this one everyone
Just to catch everyone up, I have added the breakout rooms interface to the C# wrapper locally. However, I was seeing bugs with it and had to track down whether those bugs were in the SDK itself or my implementation of the wrapper. This took longer than expected as the latest SDK release seemed to have its own breakout rooms bugs. After more testing, it appears the main issue I am seeing is indeed with my implementation of the wrapper. I am still troubleshooting what exactly is wrong in my code, but essentially the breakout room controller always returns NULL. Under the same scenario in the C++ SDK, it is returning successfully.
Every breakout room class and function is implemented in my wrapper but I have not found the root-cause of the NULL-ness. If you would like to look at it (or maybe derive your own implementation from it), I can still send it out to you over a DeveloperSupport thread. Otherwise, I can put up a PR internally once I identify the issue and hopefully we can distribute it publicly after that.
If you do want the broken version I am currently using, can you send an email with a link to this post to DeveloperSupport@zoom.us? I unfortunately cannot upload a zip here. @lauren.olphert, I still have our thread up so no need to start a new one.
Thanks!
Michael
Hi Michael
I am able to get a non null result from CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingBOController()
based on my tests at https://bumblebee.com.sg/ref/zoomsdk.php.
It was quite tedious to code all the intermediary objects.
@ratuthit ohh awesome
just to note the old implementation was
ZOOM_SDK_DOTNET_WRAP.CZoomSDKeDotNetWrap.Instance.GetMeetingServiceWrap().GetMeetingBreakoutRoomsController();
I just noticed the link you sent has the tutorial on how to edit it!!! (this was released in march 29,2021)
https://bumblebee.com.sg/ref/zoomsdk.php
Super perfect!!
@Michael_Condon
take a look at the link it might point out the mistake
Dang, I wish I would’ve seen the article before implementing it myself
Michael
A few things to note that got me stuck from the tutorial
https://bumblebee.com.sg/ref/zoomsdk.php
You need to modify the common header file in more than one place to include
meeting_breakout_rooms_interface_v2.h
you need to included it as
#include “…/…/zoom_sdk/include/meeting_service_components/meeting_breakout_rooms_interface_v2.h”
and
#include “…/h/meeting_service_components/meeting_breakout_rooms_interface_v2.h”
In zoom-c-sharp\zoom_sdk_c_sharp_wrap\meeting_bo_dotnet_wrap.h
You need to include the header file as well
Make sure you include the new files you create in the project
Please note that these are the problems I saw from the tutorial. I couldn’t get the tutorial to run
@ratuthit Do you have a working copy of this? I keep getting the following linker errors
I recompiled Michael’s Code though and it seems to run fine on a fresh install of the SDK. I just need to re-add the modifications I had