content: 'Copyright 2010 Dirk Elmendorf
  
  Function Init() as Object
    obj = { 
      port: CreateObject("roMessagePort")
      screen: CreateObject("roSpringboardScreen")
      player: CreateObject("roAudioPlayer")
      screen_options: CreateObject("roAssociativeArray")
      song: CreateObject("roAssociativeArray")
      status: ""
      drawScreen: function(description) 
          m.screen_options.Description = description
          m.screen.SetContent(m.screen_options)
          m.screen.Show()
      end function
      playingNow: function()
          m.screen.ClearButtons()
          m.screen.AddButton(1, "Pause Stream")
          m.screen.AddButton(3, "Exit")
          m.DrawScreen("Live MP3 Stream from KEXP.org")
      end function
      play: function()
          if m.status = "" then
            m.player.AddContent(m.song)
            m.player.SetLoop(true)
            m.player.play()
            m.status = "playing"
          else if m.status = "paused" 
            m.player.resume()
            m.status = "playing"
          endif
  
          m.screen.ClearButtons()
          m.screen.AddButton(3, "Exit")
  
          m.drawScreen("Buffering....")
      end function
      pause: function()
          if m.status = "playing" then
            m.player.pause()
            m.status = "paused"
          endif
          
          m.screen.ClearButtons()
          m.screen.AddButton(2, "Resume Stream")
          m.screen.AddButton(3, "Exit")
  
          m.drawScreen("Stream Paused")
      end function
      exit: function() 
          print "Goodbye World!"
          m.player.stop()
          return 0
      end function
    }
    obj.screen.SetMessagePort(obj.port)
    obj.player.SetMessagePort(obj.port)
    
  
    obj.screen_options.ContentType = "episode"
    obj.screen_options.Title = "KEXP"
    obj.screen_options.SDPosterURL = "pkg:/images/episode_icon_sd.png"
    obj.screen_options.HDPosterURL = "pkg:/images/episode_icon_sd.png"
    obj.screen.SetStaticRatingEnabled(false)
  
  
    obj.song.Url = "http://kexp-mp3-2.cac.washington.edu:8000/"
    obj.song.StreamFormat = "mp3"
    obj.status = ""
    return(obj)
  end Function
  
  Function Main() as Integer
  
    app = Init()
    app.play()
  
    while true
      msg = wait(0, app.port)
      if type(msg) = "roAudioPlayerEvent"
        if msg.isStatusMessage() then
          print "Audio Player Event:"; msg.getmessage()
          if msg.GetMessage() = "start of play" then
            app.playingNow()
          endif
        endif
      else if msg.isButtonPressed()  then
          if msg.GetIndex() = 1 then 
            app.pause()
          else if msg.GetIndex() = 2 then 
            app.play()
          else if msg.GetIndex() = 3 then 
            return app.exit()
          endif
      else if msg.isScreenClosed() then
        return app.exit()
      endif
    end while
  end Function
  