16
README.md
16
README.md
@@ -509,6 +509,22 @@ mp.register_script_message('submit', function(prop, value)
|
|||||||
end)
|
end)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### `set <prop> <value>`
|
||||||
|
|
||||||
|
Tell **uosc** to set an external property to this value. Currently, this is only used to display control button badges:
|
||||||
|
|
||||||
|
In your script, set the value of `foo` to `1`.
|
||||||
|
|
||||||
|
```lua
|
||||||
|
mp.commandv('script-message-to', 'uosc', 'set', 'foo', 1)
|
||||||
|
```
|
||||||
|
|
||||||
|
This property can now be used as a control button badge by prefixing it with `@`.
|
||||||
|
|
||||||
|
```
|
||||||
|
controls=command:icon_name:command_name#@foo?My foo button
|
||||||
|
```
|
||||||
|
|
||||||
## Why _uosc_?
|
## Why _uosc_?
|
||||||
|
|
||||||
It stood for micro osc as it used to render just a couple rectangles before it grew to what it is today. And now it means a minimalist UI design direction where everything is out of your way until needed.
|
It stood for micro osc as it used to render just a couple rectangles before it grew to what it is today. And now it means a minimalist UI design direction where everything is out of your way until needed.
|
||||||
|
@@ -3367,7 +3367,7 @@ end
|
|||||||
function Controls:register_badge_updater(badge, element)
|
function Controls:register_badge_updater(badge, element)
|
||||||
local prop_and_limit = split(badge, ' *> *')
|
local prop_and_limit = split(badge, ' *> *')
|
||||||
local prop, limit = prop_and_limit[1], tonumber(prop_and_limit[2] or -1)
|
local prop, limit = prop_and_limit[1], tonumber(prop_and_limit[2] or -1)
|
||||||
local observable_name, serializer = prop, nil
|
local observable_name, serializer, is_external_prop = prop, nil, false
|
||||||
|
|
||||||
if itable_index_of({'sub', 'audio', 'video'}, prop) then
|
if itable_index_of({'sub', 'audio', 'video'}, prop) then
|
||||||
observable_name = 'track-list'
|
observable_name = 'track-list'
|
||||||
@@ -3377,6 +3377,7 @@ function Controls:register_badge_updater(badge, element)
|
|||||||
return count
|
return count
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
if prop:sub(1, 1) == '@' then prop, is_external_prop = prop:sub(2), true end
|
||||||
serializer = function(value) return value and (type(value) == 'table' and #value or tostring(value)) or nil end
|
serializer = function(value) return value and (type(value) == 'table' and #value or tostring(value)) or nil end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -3388,7 +3389,8 @@ function Controls:register_badge_updater(badge, element)
|
|||||||
request_render()
|
request_render()
|
||||||
end
|
end
|
||||||
|
|
||||||
mp.observe_property(observable_name, 'native', handler)
|
if is_external_prop then element['on_external_prop_' .. prop] = function(_, value) handler(prop, value) end
|
||||||
|
else mp.observe_property(observable_name, 'native', handler) end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Controls:get_visibility()
|
function Controls:get_visibility()
|
||||||
@@ -4734,3 +4736,6 @@ mp.register_script_message('thumbfast-info', function(json)
|
|||||||
request_render()
|
request_render()
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
mp.register_script_message('set', function(name, value)
|
||||||
|
Elements:trigger('external_prop_' .. name, utils.parse_json(value))
|
||||||
|
end)
|
||||||
|
Reference in New Issue
Block a user