logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
njfeathe85  
#1 Posted : Tuesday, January 19, 2021 12:50:57 AM(UTC)
njfeathe85

Rank: Member

Groups: Registered
Joined: 9/17/2020(UTC)
Posts: 18
United Kingdom
Location: Leeds

Thanks: 2 times
Was thanked: 3 time(s) in 3 post(s)
Hi Everyone

Hope you might be able to help me fix my code -

I am trying to put a toggle input to master AND change an image onto a single button for the AKAI. TO do this I am setting the button to script start. I have so far got it toggle the Input to Master with no issues, but I am struggling to get the list to change image. WHen the input is NOT going to Master I want the image to be just "Green Room" when the Input IS going to Master I want it to show my "On Air" Image. I can do it on 2 seperate buttons using "NextItem" and "PreviousItem" but I want it to be on one button.

I see an If statement as the way forward -

If list = value 1 - show value 2, if list = value 2, show value 1. Essentially.

Here is my code (Only just learning/finding my way around vb.)

API.Function("AudioBus", Input:="Zoom1", Value:="M")
If API.Function("Selectindex", Value:="1", Input:="GR Images")
else API.Function("Selectindex", Value:="2", Input:="GR Images")
End if

I think the issue is the "IF Statement, doesn't have a value to compare to which i'm struggling to work out how to set that.

TIA
doggy  
#2 Posted : Tuesday, January 19, 2021 2:10:05 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,227
Belgium
Location: Belgium

Thanks: 293 times
Was thanked: 956 time(s) in 791 post(s)
you need to get the if based on the value not the function
for simplicity put the value in a variable for the if statement to check on and perform the function based on that like

if value is = 1 or "1" (depending if its a string or number(integer)
do function A
else
do function B
endif

your issue is more related to get the selection value from in the first place , where wil you get it from ?


https://www.tutorialspoi...t_if_else_statements.htm
njfeathe85  
#3 Posted : Tuesday, January 19, 2021 2:35:41 AM(UTC)
njfeathe85

Rank: Member

Groups: Registered
Joined: 9/17/2020(UTC)
Posts: 18
United Kingdom
Location: Leeds

Thanks: 2 times
Was thanked: 3 time(s) in 3 post(s)
Hi, Thanks very much for that. Yes, I felt exactly as you said that it was the value for the statement to check against to then determine if the conditions were true/false. In answer to your question "where will you get it from" I've no idea, i'm hoping someone on here help me out with that!

So my question is - How do I define the status of a list (i.e which item is selected) to determine a condition to measure against when executing an if statement.
doggy  
#4 Posted : Tuesday, January 19, 2021 2:47:35 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,227
Belgium
Location: Belgium

Thanks: 293 times
Was thanked: 956 time(s) in 791 post(s)
Originally Posted by: njfeathe85 Go to Quoted Post

So my question is - How do I define the status of a list (i.e which item is selected) to determine a condition to measure against when executing an if statement.


one can check the API xml from within a script

Have a look at (with vMix running)
http://127.0.0.1:8088/api

njfeathe85  
#5 Posted : Tuesday, January 19, 2021 3:20:10 AM(UTC)
njfeathe85

Rank: Member

Groups: Registered
Joined: 9/17/2020(UTC)
Posts: 18
United Kingdom
Location: Leeds

Thanks: 2 times
Was thanked: 3 time(s) in 3 post(s)
The API is as follows - with the list selection being defined by "selectedIndex"

<input key="4357451a-56c0-4dd0-86d8-e041cd8f4dbb" number="12" type="VideoList" title="GR Images - Green Room - White Text.png" shortTitle="GR Images" state="Paused" position="0" duration="0" loop="False" muted="True" volume="100" balance="0" solo="False" audiobusses="" meterF1="0" meterF2="0" selectedIndex="1">

<input key="4357451a-56c0-4dd0-86d8-e041cd8f4dbb" number="12" type="VideoList" title="GR Images - On Air_.png" shortTitle="GR Images" state="Paused" position="0" duration="0" loop="False" muted="True" volume="100" balance="0" solo="False" audiobusses="" meterF1="0" meterF2="0" selectedIndex="2">

So I assume I can have the If statement define the condition based on selectedIndex? or could it be defined by the title? How would I go about writing that?


doggy  
#6 Posted : Tuesday, January 19, 2021 3:34:06 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,227
Belgium
Location: Belgium

Thanks: 293 times
Was thanked: 956 time(s) in 791 post(s)
This Forum has a neat "search" option.

Lots of post regarding scripting

especially "scripting for dummies" post where the first post already shows how to retrieve info from the API XML
njfeathe85  
#7 Posted : Tuesday, January 19, 2021 3:40:20 AM(UTC)
njfeathe85

Rank: Member

Groups: Registered
Joined: 9/17/2020(UTC)
Posts: 18
United Kingdom
Location: Leeds

Thanks: 2 times
Was thanked: 3 time(s) in 3 post(s)
Appreciate your reply. I have spent quite a bit of time searching for this but as yet I haven't found it. I will continue to look.

Thanks.
doggy  
#8 Posted : Tuesday, January 19, 2021 3:42:18 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,227
Belgium
Location: Belgium

Thanks: 293 times
Was thanked: 956 time(s) in 791 post(s)
3rd piece of code (but there are more)

https://forums.vmix.com/...ng-for-Dummies#post70735
njfeathe85  
#9 Posted : Tuesday, January 19, 2021 4:33:03 AM(UTC)
njfeathe85

Rank: Member

Groups: Registered
Joined: 9/17/2020(UTC)
Posts: 18
United Kingdom
Location: Leeds

Thanks: 2 times
Was thanked: 3 time(s) in 3 post(s)
Hi

I just wanted to say thanks very much for your help. I managed to work it out (once i understood the "console.writeline" bit referred to the command line area underneath the scripting list, this helped me to workout what was what and that the information was being retrieved from the API.

This is how it ended up -

So shortcut commands as follows - first command toggles Input to Bus,


Function=AudioBus&Input=Zoom1&Value=M
Function=scriptstart&value=livestatus


second command runs the script as below -


dim xml = API.XML()
dim x as new system.xml.xmldocument
x.loadxml(xml)

'define the input to look at by editing the short title referenced in the API and also what part to look at - in this case "audiobuses"
'Will feed back a value of each bus seperated by a "," eg. "M,A" or "A" or "A,G" etc.
dim INPUTMASTER = (x.SelectSingleNode("//input[@shortTitle='Zoom1']/@audiobusses").Value)

'not needed but saving for future reference
'dim SI = (x.SelectSingleNode("//input[@shortTitle='GR Images']/@selectedIndex").Value)



If INPUTMASTER = "A" Then
API.Function("Selectindex", Value:="1", Input:="GR Images")
ElseIf INPUTMASTER = "M,A" Then
API.Function("Selectindex", Value:="2", Input:="GR Images")
End if
Users browsing this topic
Guest (2)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.