← Back to team overview

zeya team mailing list archive

[PATCH] Adjust the volume for the Web UI

 

Hi all,

Here is a patch for the Web UI. It adds two buttons "+" and "-" to adjust the
volume during playback (volume is preserved accross different tracks).

The patch also references "minus.png" and "plus.png" icons. These resources
aren't attached in the message, I thought it would be more convenient to first
submit the core patch for review and hopefully inclusion in main repository.

Thx for your work on Zeya,

Cheers,
David
diff --git a/resources/library.html b/resources/library.html
index 840388f..dab4cab 100644
--- a/resources/library.html
+++ b/resources/library.html
@@ -49,6 +49,12 @@
       <span id="next_button" class="control">
 	<img id="next_img" src="next.png" alt="Next" onclick="next()" title="Next">
       </span>
+      <span id="volumemin_button" class="control">
+	<img id="minus_img" src="minus.png" alt="Minus" onclick="current_audio.volume-= 0.1" title="Minus">
+      </span>
+      <span id="volumeplu_button" class="control">
+	<img id="plus_img" src="plus.png" alt="Plus" onclick="current_audio.volume+= 0.1" title="Plus">
+      </span>
       <span id="spinner">
 	<img id="spinner_icon" src="spinner.gif" style="visibility: hidden;">
       </span>
diff --git a/resources/minus.png b/resources/minus.png
new file mode 100644
index 0000000..3eb4253
Binary files /dev/null and b/resources/minus.png differ
diff --git a/resources/plus.png b/resources/plus.png
new file mode 100644
index 0000000..1dbe62d
Binary files /dev/null and b/resources/plus.png differ
diff --git a/resources/zeya.js b/resources/zeya.js
index 568753a..0021747 100644
--- a/resources/zeya.js
+++ b/resources/zeya.js
@@ -34,6 +34,9 @@ var status_info = {
   displayed_tracks: 0,
 };
 
+//  default volume
+var volume = 0.8;
+
 // We need to buffer streams for Chrome.
 var using_webkit = navigator.userAgent.indexOf("AppleWebKit") > -1;
 // Firefox 3.5 doesn't issue the 'suspend' event, so we need to use a fallback
@@ -136,18 +139,24 @@ function set_ui_state(new_state) {
     document.getElementById("play_img").className = 'grayed';
     document.getElementById("pause_img").className = 'grayed';
     document.getElementById("next_img").className = 'grayed';
+    document.getElementById("minus_img").className = 'grayed'; 
+    document.getElementById("plus_img").className = 'grayed'; 
   } else if (new_state == 'play') {
     // 'Play' depressed
     document.getElementById("previous_img").className = '';
     document.getElementById("play_img").className = 'activated';
     document.getElementById("pause_img").className = '';
     document.getElementById("next_img").className = '';
+    document.getElementById("minus_img").className = ''; 
+    document.getElementById("plus_img").className = '';
   } else {
     // 'Pause' depressed
     document.getElementById("previous_img").className = '';
     document.getElementById("pause_img").className = 'activated';
     document.getElementById("play_img").className = '';
     document.getElementById("next_img").className = '';
+    document.getElementById("minus_img").className = '';
+    document.getElementById("plus_img").className = '';
   }
   current_state = new_state;
 }
@@ -520,6 +529,8 @@ function select_item(index, play_track) {
   if (current_audio !== null) {
     current_audio.pause();
     set_ui_state('pause');
+	// save old volume
+	volume = current_audio.volume;
   }
   // Show the spinner if applicable.
   if (play_track) {
@@ -579,6 +590,8 @@ function select_item(index, play_track) {
   } else {
     set_ui_state('pause');
   }
+	// set old volume to current audio
+	 current_audio.volume = volume;
 }
 
 // Load the next song in the list (with wraparound).