diff --git a/airtime_mvc/application/common/TuneIn.php b/airtime_mvc/application/common/TuneIn.php
new file mode 100644
index 000000000..54dedc516
--- /dev/null
+++ b/airtime_mvc/application/common/TuneIn.php
@@ -0,0 +1,29 @@
+setLastPlayedTime($now);
+
+ // Push metadata to TuneIn
+ if (Application_Model_Preference::getTuneinEnabled()) {
+ $filePropelOrm = $file->getPropelOrm();
+ $title = urlencode($filePropelOrm->getDbTrackTitle());
+ $artist = urlencode($filePropelOrm->getDbArtistName());
+ Application_Common_TuneIn::sendMetadataToTunein($title, $artist);
+ }
}
} else {
// webstream
diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php
index b06a9e1ed..e4615c02d 100644
--- a/airtime_mvc/application/controllers/PreferenceController.php
+++ b/airtime_mvc/application/controllers/PreferenceController.php
@@ -56,14 +56,19 @@ class PreferenceController extends Zend_Controller_Action
Application_Model_Preference::SetStationLogo($imagePath);
}
- Application_Model_Preference::SetUploadToSoundcloudOption($values["UploadToSoundcloudOption"]);
+ Application_Model_Preference::setTuneinEnabled($values["enable_tunein"]);
+ Application_Model_Preference::setTuneinStationId($values["tunein_station_id"]);
+ Application_Model_Preference::setTuneinPartnerKey($values["tunein_partner_key"]);
+ Application_Model_Preference::setTuneinPartnerId($values["tunein_partner_id"]);
+
+ /*Application_Model_Preference::SetUploadToSoundcloudOption($values["UploadToSoundcloudOption"]);
Application_Model_Preference::SetSoundCloudDownloadbleOption($values["SoundCloudDownloadbleOption"]);
Application_Model_Preference::SetSoundCloudUser($values["SoundCloudUser"]);
Application_Model_Preference::SetSoundCloudPassword($values["SoundCloudPassword"]);
Application_Model_Preference::SetSoundCloudTags($values["SoundCloudTags"]);
Application_Model_Preference::SetSoundCloudGenre($values["SoundCloudGenre"]);
Application_Model_Preference::SetSoundCloudTrackType($values["SoundCloudTrackType"]);
- Application_Model_Preference::SetSoundCloudLicense($values["SoundCloudLicense"]);
+ Application_Model_Preference::SetSoundCloudLicense($values["SoundCloudLicense"]);*/
$this->view->statusMsg = "
". _("Preferences updated.")."
";
$this->view->form = $form;
diff --git a/airtime_mvc/application/forms/Preferences.php b/airtime_mvc/application/forms/Preferences.php
index 3e5158413..3226d558d 100644
--- a/airtime_mvc/application/forms/Preferences.php
+++ b/airtime_mvc/application/forms/Preferences.php
@@ -21,6 +21,10 @@ class Application_Form_Preferences extends Zend_Form
$this->addSubForm($general_pref, 'preferences_general');
+ //tunein form
+ $tuneinPreferences = new Application_Form_TuneInPreferences();
+ $this->addSubForm($tuneinPreferences, 'preferences_tunein');
+
$soundcloud_pref = new Application_Form_SoundcloudPreferences();
$this->addSubForm($soundcloud_pref, 'preferences_soundcloud');
diff --git a/airtime_mvc/application/forms/TuneInPreferences.php b/airtime_mvc/application/forms/TuneInPreferences.php
new file mode 100644
index 000000000..d97a557e9
--- /dev/null
+++ b/airtime_mvc/application/forms/TuneInPreferences.php
@@ -0,0 +1,44 @@
+setDecorators(array(
+ array('ViewScript', array('viewScript' => 'form/preferences_tunein.phtml'))
+ ));
+
+ $enableTunein = new Zend_Form_Element_Checkbox("enable_tunein");
+ $enableTunein->setLabel(_("Push metadata to your station on TuneIn?"));
+ $enableTunein->setValue(Application_Model_Preference::getTuneinEnabled());
+ $enableTunein->setAttrib("class", "block-display");
+ $this->addElement($enableTunein);
+
+ // TODO: figure out how to make this validator work
+ $validator = new ConditionalNotEmpty(array(
+ 'enable_tunein' => 1
+ ));
+
+ $tuneinStationId = new Zend_Form_Element_Text("tunein_station_id");
+ $tuneinStationId->setLabel(_("Station ID:"));
+ $tuneinStationId->setValue(Application_Model_Preference::getTuneinStationId());
+ $tuneinStationId->setAttrib("class", "input_text");
+ $tuneinStationId->addValidator($validator);
+ $this->addElement($tuneinStationId);
+
+ $tuneinPartnerKey = new Zend_Form_Element_Text("tunein_partner_key");
+ $tuneinPartnerKey->setLabel(_("Partner Key:"));
+ $tuneinPartnerKey->setValue(Application_Model_Preference::getTuneinPartnerKey());
+ $tuneinPartnerKey->setAttrib("class", "input_text");
+ $tuneinPartnerKey->addValidator($validator);
+ $this->addElement($tuneinPartnerKey);
+
+ $tuneinPartnerId = new Zend_Form_Element_Text("tunein_partner_id");
+ $tuneinPartnerId->setLabel(_("Partner Id:"));
+ $tuneinPartnerId->setValue(Application_Model_Preference::getTuneinPartnerId());
+ $tuneinPartnerId->setAttrib("class", "input_text");
+ $tuneinPartnerId->addValidator($validator);
+ $this->addElement($tuneinPartnerId);
+ }
+}
\ No newline at end of file
diff --git a/airtime_mvc/application/models/Preference.php b/airtime_mvc/application/models/Preference.php
index 64263b94c..1387d326b 100644
--- a/airtime_mvc/application/models/Preference.php
+++ b/airtime_mvc/application/models/Preference.php
@@ -1453,4 +1453,44 @@ class Application_Model_Preference
{
return self::getValue("provisioning_status");
}
+
+ public static function setTuneinEnabled($value)
+ {
+ self::setValue("tunein_enabled", $value);
+ }
+
+ public static function getTuneinEnabled()
+ {
+ return self::getValue("tunein_enabled");
+ }
+
+ public static function setTuneinPartnerKey($value)
+ {
+ self::setValue("tunein_partner_key", $value);
+ }
+
+ public static function getTuneinPartnerKey()
+ {
+ return self::getValue("tunein_partner_key");
+ }
+
+ public static function setTuneinPartnerId($value)
+ {
+ self::setValue("tunein_partner_id", $value);
+ }
+
+ public static function getTuneinPartnerId()
+ {
+ return self::getValue("tunein_partner_id");
+ }
+
+ public static function setTuneinStationId($value)
+ {
+ self::setValue("tunein_station_id", $value);
+ }
+
+ public static function getTuneinStationId()
+ {
+ return self::getValue("tunein_station_id");
+ }
}
diff --git a/airtime_mvc/application/views/scripts/form/preferences.phtml b/airtime_mvc/application/views/scripts/form/preferences.phtml
index 0ffe1ea9d..9029a5c17 100644
--- a/airtime_mvc/application/views/scripts/form/preferences.phtml
+++ b/airtime_mvc/application/views/scripts/form/preferences.phtml
@@ -4,6 +4,11 @@
element->getSubform('preferences_general') ?>
+
+
+ element->getSubform('preferences_tunein') ?>
+
+
element->submit->render() ?>
diff --git a/airtime_mvc/application/views/scripts/form/preferences_tunein.phtml b/airtime_mvc/application/views/scripts/form/preferences_tunein.phtml
new file mode 100644
index 000000000..a3cdb0d83
--- /dev/null
+++ b/airtime_mvc/application/views/scripts/form/preferences_tunein.phtml
@@ -0,0 +1,11 @@
+
\ No newline at end of file
diff --git a/airtime_mvc/public/js/airtime/preferences/preferences.js b/airtime_mvc/public/js/airtime/preferences/preferences.js
index 1dffe24d2..d1aea4091 100644
--- a/airtime_mvc/public/js/airtime/preferences/preferences.js
+++ b/airtime_mvc/public/js/airtime/preferences/preferences.js
@@ -63,6 +63,30 @@ function setMailServerInputReadonly() {
setMsAuthenticationFieldsReadonly(requiresAuthCB);
}
+function setTuneInSettingsListener() {
+ var enableTunein = $("#enable_tunein");
+ enableTunein.click(function(event){
+ setTuneInSettingsReadonly();
+ });
+}
+
+function setTuneInSettingsReadonly() {
+ var enableTunein = $("#enable_tunein");
+ var stationId = $("#tunein_station_id");
+ var partnerKey = $("#tunein_partner_key");
+ var partnerId = $("#tunein_partner_id");
+
+ if (enableTunein.is(':checked')) {
+ stationId.removeAttr("readonly");
+ partnerKey.removeAttr("readonly");
+ partnerId.removeAttr("readonly");
+ } else {
+ stationId.attr("readonly", "readonly");
+ partnerKey.attr("readonly", "readonly");
+ partnerId.attr("readonly", "readonly");
+ }
+}
+
/*
* Enable/disable mail server authentication fields
*/
@@ -151,4 +175,6 @@ $(document).ready(function() {
setConfigureMailServerListener();
setEnableSystemEmailsListener();
setCollapsibleWidgetJsCode();
+ setTuneInSettingsReadonly();
+ setTuneInSettingsListener();
});