Bagaimana membuat XMMS Anda memiliki feature fadeout seperti Winamp? saya akan memberikan trik dan tekniknya dengan bantuan patch yang sudah saya buat untuk memudahkan Anda memodifikasi source-code XMMS supaya memiliki feature fadeout.
Yang harus pertama kali Anda lakukan tentunya adalah mendownload source code XMMS terbaru di situsnya XMMS di http://www.xmms.org/files/1.2.x/xmms-1.2.10.tar.bz2, selanjutnya ekstrak file yang sudah di download:
Pindahkan file "fadeout.patch" ke direktori xmms:
Yang harus pertama kali Anda lakukan tentunya adalah mendownload source code XMMS terbaru di situsnya XMMS di http://www.xmms.org/files/1.2.x/xmms-1.2.10.tar.bz2, selanjutnya ekstrak file yang sudah di download:
bash$ tar -jxf xmms-1.2.10.tar.bz2Sebelumnya Anda copy file "fadeout.patch" di bawah ini:
=== file: fadeout.patch =====
--- main.c.orig 2006-08-10 00:35:16.000000000 +0000
+++ main.c 2006-08-10 00:36:02.000000000 +0000
@@ -283,7 +283,7 @@
{N_("/Playback/Stop"), "V", mainwin_general_menu_callback, MAINWIN_GENERAL_STOP, "- "},
{N_("/Playback/Next"), "B", mainwin_general_menu_callback, MAINWIN_GENERAL_NEXT, "- "},
{N_("/Playback/-"), NULL, NULL, 0, ""},
-/* {N_("/Playback/Stop with Fadeout"),"V",mainwin_general_menu_callback,MAINWIN_GENERAL_STOPFADE," - "}, */
+ {N_("/Playback/Stop with Fadeout"),"V",mainwin_general_menu_callback,MAINWIN_GENERAL_STOPFADE," - "},
{N_("/Playback/Back 5 Seconds"), NULL, mainwin_general_menu_callback, MAINWIN_GENERAL_BACK5SEC, "- "},
{N_("/Playback/Fwd 5 Seconds"), NULL, mainwin_general_menu_callback, MAINWIN_GENERAL_FWD5SEC, "- "},
{N_("/Playback/Start of List"), "Z", mainwin_general_menu_callback, MAINWIN_GENERAL_START, " - "},
@@ -2044,6 +2044,15 @@
input_stop();
}
+void mainwin_stop_fade(void)
+{
+ if (get_input_playing())
+ {
+ input_stop_fade();
+ mainwin_stop_pushed();
+ }
+}
+
void mainwin_shuffle_pushed(gboolean toggled)
{
GtkWidget *widget;
@@ -2528,6 +2537,7 @@
playlist_next();
break;
case MAINWIN_GENERAL_STOPFADE:
+ mainwin_stop_fade();
break;
case MAINWIN_GENERAL_BACK5SEC:
if (get_input_playing() && playlist_get_current_length() != -1)
--- input.c.orig 2006-08-10 00:35:33.000000000 +0000
+++ input.c 2006-08-10 00:36:09.000000000 +0000
@@ -308,6 +308,36 @@
ip_data->playing = FALSE;
}
+void input_stop_fade(void)
+{
+ #define FADEDELTA 500000
+
+ int vl, vr, v, counter, time, curr_song_len, fadelen = 20;
+
+ input_get_volume(&vl, &vr);
+ v = MAX(vl, vr);
+
+ curr_song_len = (playlist_get_current_length() / 1000);
+ time = (input_get_time() / 1000);
+
+ if ((curr_song_len - time) < 10) + { + fadelen = (curr_song_len - time) * 2; + } + + counter = v / fadelen; + + while (v >= 0)
+ {
+ input_set_volume(v, v);
+ usleep(FADEDELTA);
+ v -= counter;
+ }
+
+ input_stop();
+ input_set_volume(vl, vr);
+}
+
void input_pause(void)
{
if (get_input_playing() && get_current_input_plugin())
--- input.h.orig 2006-08-10 00:35:41.000000000 +0000
+++ input.h 2006-08-10 00:36:14.000000000 +0000
@@ -34,6 +34,7 @@
gboolean input_check_file(gchar * filename);
void input_play(char *filename);
void input_stop(void);
+void input_stop_fade(void);
void input_pause(void);
int input_get_time(void);
void input_set_eq(int on, float preamp, float *bands);
=== endoffile: fadeout.patch =====
Pindahkan file "fadeout.patch" ke direktori xmms:
bash$ cp fadeout.patch xmms-1.2.10Setelah proses kompilasi selesai lanjutkan dengan menginstall xmms yang sudah di kompile dari root user.
Patching source code XMMS dengan fadeout.patch dari direktori "xmms" di source code XMMS (xmms-1.2.10/xmms)
bash$ cd xmms <==== Anda berada di (xmms-1.2.10/xmms)
bash$ patch -p0 < ../fadeout.patch
bash$ cd ..
Compile source-code XMMS yang sudah di patch.
bash$ ./configure --prefix=/usr
bash$ make -j3
bash# make installUntuk pengguna XNUXER LINUX versi installer (Install CD) bisa download package XMMS yang sudah di lengkapi fitur FADEOUT dan CROSSFADE, serta feature untuk menjalankan video/audio streaming. Download link:
http://sec.us.to/downloads/xmms-1.2.10-i686-3xnx.tgzSelamat Mencoba.
0 komentar:
Posting Komentar