#!/usr/bin/env python # -*- coding: UTF-8 -*- # # webinterface for re_codec configuration # (c)2004 jan gerber # import cgi import cgitb; cgitb.enable() from xmlrpclib import * from SimpleXMLRPCServer import * import re import sys class confClass: def __init__(self,server): self.mode=server.getMode() self.streamswitch_mode=server.getStreamSwitchMode() #get values via xmlrpc must go here. def save_values(form): global conf savemode=form.getvalue("save", "").strip() mode = form.getvalue("mode", "") if savemode=="mode": conf.mode = form.getvalue("mode", "") if form.getvalue("streamswitch_mode", "").strip(): conf.streamswitch_mode = "enabled" else: conf.streamswitch_mode = "disabled" elif savemode=="encoder": for port in ['In','Out','Fallback']: for channel in [1,2]: value=form.getvalue('Jackmixer%s-%s'%(port,channel),'') if value: print "aha",value,"
" elif savemode=="decoder": for port in ['In','Out','Fallback']: for channel in [1,2]: value=form.getvalue('Jackmixer%s-%s'%(port,channel),'') if value: print "aha",value,"
" def input_form(label,value): print '

',label,'

'%value def getJackmixerSelectbox(name,mode='Playback'): channels=2 portnum=0 selectbox='' while portnummake sure jackd is running." sys.exit() return selectbox def jackmixer_form(): print '

' print "

jackmixer

" """

encoder: input: alsa_pcm:capture, output: ices, fallback: player_fallback
decoder: input: player_in, output: alsa_pcm:playback , fallback: player_fallback

""" print '
' print "

input port:

" print getJackmixerSelectbox('JackmixerIn','Capture') print "

fallback port:

" print getJackmixerSelectbox('JackmixerFallback','Capture') print '
' print ' ' print "

output port:

" print getJackmixerSelectbox('JackmixerOut') print '
' print '

' def fallback_form(): print '

' print '

fallback settings:

' input_form("Playlist: ",'') print '

' def mode_form(): global conf print '

' print '

' print '' print '' print '
' print 'mode: ' print '

' if conf.streamswitch_mode=='enabled': state='checked' else: state='' print '
' print ''' enable streamswitch '''% state print '' print '' print '
' print '
' def streamswitch_form(): print '
' print "

streamswitch

" print '''

basic settings for the streanswitch
possible advanced settings for the future: shout settings

''' overwrite=server.getStreamSwitchOverwriteURL() if overwrite: checked='checked' disabled="true" else: checked='' disabled="false" print '''

[] manual overwrite

'''%(checked,overwrite,disabled) print "Settings:" input_form("Default stream: ",server.getStreamSwitchDefaultURL()) input_form("Fallback stream: ",server.getStreamSwitchFallbackURL()) input_form("iCalender URL: ",server.getStreamSwitchIcsURL()) print '
' def decoder_form(): print '
' print '

decoder settings:

' print '''

basic settings for the decoder
possible advanced settings for the future: fallback,recording[ices,icecast]

''' input_form("Stream: ",server.getStreamDecoderUrl()) jackmixer_form() print '
' def encoder_form(): print '
' print '

encoder settings:

' print '''

basic settings for the encoder
possible advanced settings for the future: fallback,ices,icecast,recording

''' jackmixer_form() print '
' # main part print "Content-Type: text/html; charset=utf-8" # HTML is following print # blank line, end of headers server = ServerProxy("http://localhost:96123") try: xmlrpc_methods=server.system.listMethods() conf=confClass(server) except: print 'XMLRPC backend down. please check and restart backend if needed.' sys.exit() form = cgi.FieldStorage() save_values(form) print '' print "" print "re_codec config" print "" print '
' print "

re_codec configuration

" print "
" print "uptime: ",server.uptime(),"
" print "jackmixer: ",server.jackmixerStatus(),"
" if conf.streamswitch_mode=="enabled": print "switch: ",server.switchStatus(),"
" mode_form() print "
" print '
' if conf.mode=="encoder": encoder_form() elif conf.mode=="decoder": decoder_form() if conf.streamswitch_mode=="enabled": streamswitch_form() print '
' print '
' print "" print ""