mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-19 17:49:14 +00:00
UI: Use get_new_source_name instead of strprintf
Remove a bit of duplicated code, and fix non-Windows compilation. This is a bit of a workaround to not have to modify cmake, but might as well reuse a function that already exists anyway rather than duplicate the code.
This commit is contained in:
parent
6dd65c8d13
commit
61cbfb3b9a
|
@ -4412,24 +4412,7 @@ bool OBSBasic::ResetAudio()
|
|||
return obs_reset_audio(&ai);
|
||||
}
|
||||
|
||||
extern std::string strprintf(const char *format, ...);
|
||||
|
||||
static std::string GetDupName(const char *name)
|
||||
{
|
||||
std::string newName = name;
|
||||
int inc = 1;
|
||||
|
||||
for (;;) {
|
||||
OBSSourceAutoRelease existing_source =
|
||||
obs_get_source_by_name(newName.c_str());
|
||||
if (!existing_source)
|
||||
break;
|
||||
|
||||
newName = strprintf("%s (%d)", name, ++inc);
|
||||
}
|
||||
|
||||
return newName;
|
||||
}
|
||||
extern char *get_new_source_name(const char *name, const char *format);
|
||||
|
||||
void OBSBasic::ResetAudioDevice(const char *sourceId, const char *deviceId,
|
||||
const char *deviceDesc, int channel)
|
||||
|
@ -4454,12 +4437,11 @@ void OBSBasic::ResetAudioDevice(const char *sourceId, const char *deviceId,
|
|||
}
|
||||
|
||||
} else if (!disable) {
|
||||
std::string name = GetDupName(deviceDesc);
|
||||
BPtr<char> name = get_new_source_name(deviceDesc, "%s (%d)");
|
||||
|
||||
settings = obs_data_create();
|
||||
obs_data_set_string(settings, "device_id", deviceId);
|
||||
source = obs_source_create(sourceId, name.c_str(), settings,
|
||||
nullptr);
|
||||
source = obs_source_create(sourceId, name, settings, nullptr);
|
||||
|
||||
obs_set_output_source(channel, source);
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@ static void AddSource(void *_data, obs_scene_t *scene)
|
|||
obs_sceneitem_set_visible(sceneitem, data->visible);
|
||||
}
|
||||
|
||||
static char *get_new_source_name(const char *name)
|
||||
char *get_new_source_name(const char *name, const char *format)
|
||||
{
|
||||
struct dstr new_name = {0};
|
||||
int inc = 0;
|
||||
|
@ -143,7 +143,7 @@ static char *get_new_source_name(const char *name)
|
|||
if (!existing_source)
|
||||
break;
|
||||
|
||||
dstr_printf(&new_name, "%s %d", name, ++inc + 1);
|
||||
dstr_printf(&new_name, format, name, ++inc + 1);
|
||||
}
|
||||
|
||||
return new_name.array;
|
||||
|
@ -160,8 +160,8 @@ static void AddExisting(OBSSource source, bool visible, bool duplicate,
|
|||
|
||||
if (duplicate) {
|
||||
OBSSource from = source;
|
||||
char *new_name =
|
||||
get_new_source_name(obs_source_get_name(source));
|
||||
char *new_name = get_new_source_name(
|
||||
obs_source_get_name(source), "%s %d");
|
||||
source = obs_source_duplicate(from, new_name, false);
|
||||
obs_source_release(source);
|
||||
bfree(new_name);
|
||||
|
|
Loading…
Reference in a new issue