StreamSetting.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. class Application_Form_StreamSetting extends Zend_Form
  3. {
  4. private $setting;
  5. public function init()
  6. {
  7. }
  8. public function setSetting($setting)
  9. {
  10. $this->setting = $setting;
  11. }
  12. public function startFrom()
  13. {
  14. $setting = $this->setting;
  15. if (Application_Model_Preference::GetPlanLevel() == 'disabled') {
  16. $output_sound_device = new Zend_Form_Element_Checkbox('output_sound_device');
  17. $output_sound_device->setLabel(_('Hardware Audio Output'))
  18. ->setRequired(false)
  19. ->setValue(($setting['output_sound_device'] == "true")?1:0)
  20. ->setDecorators(array('ViewHelper'));
  21. if (Application_Model_Preference::GetEnableStreamConf() == "false") {
  22. $output_sound_device->setAttrib("readonly", true);
  23. }
  24. $this->addElement($output_sound_device);
  25. $output_types = array("ALSA"=>"ALSA", "AO"=>"AO", "OSS"=>"OSS", "Portaudio"=>"Portaudio", "Pulseaudio"=>"Pulseaudio");
  26. $output_type = new Zend_Form_Element_Select('output_sound_device_type');
  27. $output_type->setLabel(_("Output Type"))
  28. ->setMultiOptions($output_types)
  29. ->setValue($setting['output_sound_device_type'])
  30. ->setDecorators(array('ViewHelper'));
  31. if ($setting['output_sound_device'] != "true") {
  32. $output_type->setAttrib("disabled", "disabled");
  33. }
  34. $this->addElement($output_type);
  35. }
  36. $icecast_vorbis_metadata = new Zend_Form_Element_Checkbox('icecast_vorbis_metadata');
  37. $icecast_vorbis_metadata->setLabel(_('Icecast Vorbis Metadata'))
  38. ->setRequired(false)
  39. ->setValue(($setting['icecast_vorbis_metadata'] == "true")?1:0)
  40. ->setDecorators(array('ViewHelper'));
  41. if (Application_Model_Preference::GetEnableStreamConf() == "false") {
  42. $icecast_vorbis_metadata->setAttrib("readonly", true);
  43. }
  44. $this->addElement($icecast_vorbis_metadata);
  45. $stream_format = new Zend_Form_Element_Radio('streamFormat');
  46. $stream_format->setLabel(_('Stream Label:'));
  47. $stream_format->setMultiOptions(array(_("Artist - Title"),
  48. _("Show - Artist - Title"),
  49. _("Station name - Show name")));
  50. $stream_format->setValue(Application_Model_Preference::GetStreamLabelFormat());
  51. $stream_format->setDecorators(array('ViewHelper'));
  52. $this->addElement($stream_format);
  53. $offAirMeta = new Zend_Form_Element_Text('offAirMeta');
  54. $offAirMeta->setLabel(_('Off Air Metadata'))
  55. ->setValue(Application_Model_StreamSetting::getOffAirMeta())
  56. ->setDecorators(array('ViewHelper'));
  57. $this->addElement($offAirMeta);
  58. $enable_replay_gain = new Zend_Form_Element_Checkbox("enableReplayGain");
  59. $enable_replay_gain->setLabel(_("Enable Replay Gain"))
  60. ->setValue(Application_Model_Preference::GetEnableReplayGain())
  61. ->setDecorators(array('ViewHelper'));
  62. $this->addElement($enable_replay_gain);
  63. $replay_gain = new Zend_Form_Element_Hidden("replayGainModifier");
  64. $replay_gain->setLabel(_("Replay Gain Modifier"))
  65. ->setValue(Application_Model_Preference::getReplayGainModifier())
  66. ->setAttribs(array('style' => "border: 0; color: #f6931f; font-weight: bold;"))
  67. ->setDecorators(array('ViewHelper'));
  68. $this->addElement($replay_gain);
  69. }
  70. public function isValid($data)
  71. {
  72. if (isset($data['output_sound_device'])) {
  73. $d = array();
  74. $d["output_sound_device"] = $data['output_sound_device'];
  75. $d["icecast_vorbis_metadata"] = $data['icecast_vorbis_metadata'];
  76. if (isset($data['output_sound_device_type'])) {
  77. $d["output_sound_device_type"] = $data['output_sound_device_type'];
  78. }
  79. $d["streamFormat"] = $data['streamFormat'];
  80. $this->populate($d);
  81. }
  82. $isValid = parent::isValid($data);
  83. return $isValid;
  84. }
  85. }