Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Applescript using if/else if and a list

I am working on a script to control itunes for a school play. The problem is that I can't get it to go through the if statements. It does set the variable selectedOption but once it hots the ifs and else ifs it seems to just skip over them.

--repeat
activate
set myOption to {"Start Play", "Scene 1", "Between Scenes", "Scene 2", "Next Song", "End Play"}
set selectedOption to {choose from list myOption}
---------End Play---------
if selectedOption is "End Play" then
    tell application "iTunes"
        set currentvolume to the sound volume
        if (player state is playing) then
            -- if so, fade out the current track
            repeat with i from currentvolume to 0 by -2
                set the sound volume to i
                delay 0.1
            end repeat
            stop
        end if
    end tell
    display dialog "Volume Back Up?" buttons {"Full", "80", "End"} default button "Full"
    if the selectedOption is "Full" then
        tell application "iTunes"
            set sound volume to 100
        end tell
    else if the selectedOption is "80" then
        tell application "iTunes"
            set sound volume to 80
        end tell
    end if
    exit repeat
    ---------Scene 1---------
else if the selectedOption is "Scene 1" then
    tell application "iTunes"
        -- get the initial volume
        set currentvolume to the 60
        -- are we playing?
        if (player state is playing) then
            -- if so, fade out the current track
            repeat with i from currentvolume to 0 by -2
                set the sound volume to i
                delay 0.02
            end repeat
            next track
        end if
        -- now, regardless of whether we were playing or not, fade in the next track
        set the sound volume to 0
        play playlist "2012 Play Christmas"
        repeat with j from 0 to currentvolume by 2
            set the sound volume to j
            delay 0.02
        end repeat
        --do shell script "open ~/Desktop/2.app"
        exit repeat
    end tell
    ---------Between Scenes---------
else if the selectedOption is "Between Scenes" then
    tell application "iTunes"
        -- get the initial volume
        set currentvolume to the 60
        -- are we playing?
        if (player state is playing) then
            -- if so, fade out the current track
            repeat with i from currentvolume to 0 by -2
                set the sound volume to i
                delay 0.02
            end repeat
            next track
        end if
        -- now, regardless of whether we were playing or not, fade in the next track
        set the sound volume to 0
        play playlist "2012 Play Intermission"
        repeat with j from 0 to currentvolume by 2
            set the sound volume to j
            delay 0.02
        end repeat
    end tell
    ---------Scene 2---------
else if the selectedOption is "Scene 2" then
    tell application "iTunes"
        -- get the initial volume
        set currentvolume to the 60
        -- are we playing?
        if (player state is playing) then
            -- if so, fade out the current track
            repeat with i from currentvolume to 0 by -2
                set the sound volume to i
                delay 0.02
            end repeat
            next track
        end if
        -- now, regardless of whether we were playing or not, fade in the next track
        set the sound volume to 0
        play playlist "2012 Play Christmas2"
        repeat with j from 0 to currentvolume by 2
            set the sound volume to j
            delay 0.02
        end repeat
    end tell
    ---------Next Song---------
else if the selectedOption is "Next Song" then
    tell application "iTunes"
        -- get the initial volume
        set currentvolume to the 60
        -- are we playing?
        if (player state is playing) then
            -- if so, fade out the current track
            repeat with i from currentvolume to 0 by -2
                set the sound volume to i
                delay 0.02
            end repeat
            next track
        end if
        -- now, regardless of whether we were playing or not, fade in the next track
        set the sound volume to 0
        play
        repeat with j from 0 to currentvolume by 2
            set the sound volume to j
            delay 0.02
        end repeat
    end tell
    ---------Begin Play---------
else if the selectedOption is "Begin Play" then
    tell application "iTunes"
        set sound volume to 100
        play playlist "2012 Play Intro"
    end tell
end if
--end repeat

I commented out the repeats until I can get it to select the correct statement.

like image 964
WatsonN Avatar asked May 13 '26 00:05

WatsonN


1 Answers

Try:

set selectedOption to {choose from list myOption} as text

since

set selectedOption to {choose from list myOption}
return class of selectedOption

is a list.

like image 165
adayzdone Avatar answered May 15 '26 16:05

adayzdone



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!