Home » » Menambahkan Feature Fadeout di XMMS

Menambahkan Feature Fadeout di XMMS

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:
bash$ tar -jxf xmms-1.2.10.tar.bz2
Sebelumnya 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.10

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
Setelah proses kompilasi selesai lanjutkan dengan menginstall xmms yang sudah di kompile dari root user.
bash# make install
Untuk 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.tgz
Selamat Mencoba.
Share this article :

0 komentar:

Posting Komentar

Rekan Bisnis Online Anda
Loading


 
Support : Your Link | Your Link | Your Link
Copyright © 2013. Web TKJ - All Rights Reserved
Template Created by Creating Website Modified by CaraGampang.Com
Proudly powered by Blogger