Passed
Push — master ( 518ae3...863c37 )
by manny
46s queued 12s
created

finish_media_trigger_settings()   A

Complexity

Conditions 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nop 2
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
import obspython as obs
2
from rtgg_obs import RacetimeObs
3
4
5 View Code Duplication
def media_trigger_settings(props, rtgg_obs: RacetimeObs, index: int):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
6
    media_player_group = obs.obs_properties_create()
7
    name = f"media_trigger_#{index}"
8
    obs.obs_properties_add_group(
9
            props, name, f"Media Trigger #{index}",
10
            obs.OBS_GROUP_NORMAL, media_player_group
11
        )
12
    obs.obs_property_set_visible(
13
        obs.obs_properties_get(props, "media_player_group"),
14
        rtgg_obs.media_player.enabled
15
    )
16
    obs.obs_properties_add_path(
17
        media_player_group, f"media_path_#{index}",
18
        "Sound File", obs.OBS_PATH_FILE,
19
        "Audio Files (*.mp3 *.aac *.wav *.wma)", None
20
    )
21
    p = obs.obs_properties_add_list(
22
        media_player_group, f"trigger_type_#{index}", "Type of Trigger",
23
        obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING)
24
    obs.obs_property_list_add_string(p, "", "")
25
    obs.obs_property_list_add_string(p, "Chat", "chat")
26
    obs.obs_property_list_add_string(p, "Finish Place", "finish")
27
    obs.obs_property_list_add_string(p, "Timer", "time")
28
    obs.obs_property_set_modified_callback(p, media_type_changed)
29
    p = obs.obs_properties_add_list(
30
        media_player_group, f"monitoring_type_#{index}", "Monitoring Type",
31
        obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_INT)
32
    obs.obs_property_list_add_int(
33
        p, "Only Listen", obs.OBS_MONITORING_TYPE_MONITOR_ONLY)
34
    obs.obs_property_list_add_int(
35
        p, "Only Stream", obs.OBS_MONITORING_TYPE_NONE)
36
    obs.obs_property_list_add_int(
37
        p, "Listen and Stream", obs.OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT)
38
39
40
def media_type_changed(props, prop, settings):
41
    pass
42
43
44
def chat_media_trigger_settings(props, index: int):
45
    obs.obs_properties_add_bool(props, f"trigger_chat_bot_#{index}", "Bot?")
46
    obs.obs_properties_add_bool(
47
        props, f"trigger_chat_highlight_#{index}", "Highlighted?")
48
    obs.obs_properties_add_bool(
49
        props, f"trigger_chat_system_#{index}", "System?")
50
51
52
def finish_media_trigger_settings(props, index: int):
53
    """
54
    Settings for a media trigger based on what place the entrant finishes
55
    """
56
    obs.obs_properties_add_int(
57
        props, f"trigger_finish_place_#{index}", "Finish Place <=", 1, 10, 1)
58
    obs.obs_properties_add_int(
59
        props, f"trigger_finish_entrants_#{index}", "Num. Entrants >=",
60
        2, 255, 1)
61
62
63
def timer_media_trigger_settings(props, index: int):
64
    obs.obs_properties_add_float_slider(
65
        props, f"trigger_timer_time_#{index}", "Start playing at ",
66
        -15.0, 60, 0.1)
67