2020#include " osn-error.hpp"
2121#include " nodeobs_api.h"
2222#include " shared.hpp"
23+ #include < sstream>
2324#include " memory-manager.h"
2425#include " osn-video.hpp"
2526#include " osn-encoders.hpp"
@@ -3869,29 +3870,30 @@ void getDevices(const char *source_id, const char *property_name, std::vector<ip
38693870{
38703871 auto props = obs_get_source_properties (source_id);
38713872 if (!props) {
3872- blog (LOG_WARNING , " Could not get source properties for source id: %s" , source_id);
3873- return ;
3873+ std::ostringstream ss;
3874+ ss << " Could not get source properties for source id: " << source_id;
3875+ PRETTY_ERROR_RETURN (ErrorCode::Error, ss.str ());
38743876 }
38753877
38763878 auto prop = obs_properties_get (props, property_name);
38773879 if (!prop) {
3878- blog (LOG_WARNING , " Could not get the property [%s] for source id: %s" , property_name, source_id);
3879- obs_properties_destroy (props);
3880- return ;
3880+ obs_properties_destroy (props);
3881+ std::ostringstream ss;
3882+ ss << " Could not get source property " << property_name << " for source id: " << source_id;
3883+ PRETTY_ERROR_RETURN (ErrorCode::Error, ss.str ());
38813884 }
38823885
3886+ rval.push_back (ipc::value ((uint64_t )ErrorCode::Ok));
38833887 size_t items = obs_property_list_item_count (prop);
3884- if (rval.size () > 1 )
3885- rval[1 ].value_union .ui64 += items;
3886- else
3887- rval.push_back (ipc::value ((uint64_t )items));
3888+ rval.push_back (ipc::value ((uint64_t )items));
38883889
38893890 for (size_t idx = 0 ; idx < items; idx++) {
38903891 const char *description = obs_property_list_item_name (prop, idx);
38913892 const char *device_id = obs_property_list_item_string (prop, idx);
38923893
38933894 if (!description || !strcmp (description, " " ) || !device_id || !strcmp (device_id, " " )) {
3894- rval[1 ].value_union .ui64 --;
3895+ if (rval[1 ].value_union .ui64 > 0 )
3896+ rval[1 ].value_union .ui64 --;
38953897 continue ;
38963898 }
38973899
@@ -4036,9 +4038,8 @@ void enumAudioDevices(std::vector<ipc::value> &rval, EDataFlow dataFlow)
40364038
40374039void OBS_settings::OBS_settings_getInputAudioDevices (void *data, const int64_t id, const std::vector<ipc::value> &args, std::vector<ipc::value> &rval)
40384040{
4039- rval.push_back (ipc::value ((uint64_t )ErrorCode::Ok));
4040-
40414041#ifdef WIN32
4042+ rval.push_back (ipc::value ((uint64_t )ErrorCode::Ok));
40424043 rval.push_back (ipc::value ((uint32_t )1 ));
40434044 rval.push_back (ipc::value (" Default" ));
40444045 rval.push_back (ipc::value (" default" ));
@@ -4053,9 +4054,8 @@ void OBS_settings::OBS_settings_getInputAudioDevices(void *data, const int64_t i
40534054
40544055void OBS_settings::OBS_settings_getOutputAudioDevices (void *data, const int64_t id, const std::vector<ipc::value> &args, std::vector<ipc::value> &rval)
40554056{
4056- rval.push_back (ipc::value ((uint64_t )ErrorCode::Ok));
4057-
40584057#ifdef WIN32
4058+ rval.push_back (ipc::value ((uint64_t )ErrorCode::Ok));
40594059 rval.push_back (ipc::value ((uint32_t )1 ));
40604060 rval.push_back (ipc::value (" Default" ));
40614061 rval.push_back (ipc::value (" default" ));
0 commit comments