mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-22 20:41:26 +00:00
Add xmms-imms 1.0. IMMS is an XMMS plugin which replaces the standard
shuffle function with a smarter, weighted shuffle function based on how often you play/skip files and their sound contents. Development Status: 4 - Beta
This commit is contained in:
parent
9950dbb3ae
commit
9a9e76725a
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=100734
@ -393,6 +393,7 @@
|
|||||||
SUBDIR += xmms-faad
|
SUBDIR += xmms-faad
|
||||||
SUBDIR += xmms-fc
|
SUBDIR += xmms-fc
|
||||||
SUBDIR += xmms-flac
|
SUBDIR += xmms-flac
|
||||||
|
SUBDIR += xmms-imms
|
||||||
SUBDIR += xmms-infopipe
|
SUBDIR += xmms-infopipe
|
||||||
SUBDIR += xmms-kde
|
SUBDIR += xmms-kde
|
||||||
SUBDIR += xmms-kj
|
SUBDIR += xmms-kj
|
||||||
|
35
audio/xmms-imms/Makefile
Normal file
35
audio/xmms-imms/Makefile
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# New ports collection makefile for: xmms-imms
|
||||||
|
# Date created: Wed Feb 11 17:11:37 EST 2004
|
||||||
|
# Whom: Brian Feldman <green@FreeBSD.org>
|
||||||
|
#
|
||||||
|
# $FreeBSD$
|
||||||
|
#
|
||||||
|
|
||||||
|
PORTNAME= imms
|
||||||
|
PORTVERSION= 1.0
|
||||||
|
CATEGORIES= audio
|
||||||
|
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
|
||||||
|
MASTER_SITE_SUBDIR= ${PORTNAME}
|
||||||
|
PKGNAMEPREFIX= xmms-
|
||||||
|
|
||||||
|
MAINTAINER= green@FreeBSD.org
|
||||||
|
COMMENT= Automatic, weight-based playlist ordering plugin for XMMS
|
||||||
|
|
||||||
|
LIB_DEPENDS= xmms.4:${PORTSDIR}/multimedia/xmms \
|
||||||
|
sqlite.2:${PORTSDIR}/databases/sqlite \
|
||||||
|
pcre.0:${PORTSDIR}/devel/pcre \
|
||||||
|
id3:${PORTSDIR}/audio/id3lib \
|
||||||
|
vorbis.2:${PORTSDIR}/audio/libvorbis
|
||||||
|
|
||||||
|
USE_BZIP2= yes
|
||||||
|
USE_X_PREFIX= yes
|
||||||
|
USE_GNOME= gtk12
|
||||||
|
USE_GMAKE= yes
|
||||||
|
USE_AUTOCONF= yes
|
||||||
|
USE_AUTOHEADER= yes
|
||||||
|
WANT_AUTOCONF_VER= 257
|
||||||
|
GNU_CONFIGURE= yes
|
||||||
|
CONFIGURE_ENV= LIBS="-L${LOCALBASE}/lib" CFLAGS="-I${LOCALBASE}/include"
|
||||||
|
INSTALLS_SHLIB= yes
|
||||||
|
|
||||||
|
.include <bsd.port.mk>
|
1
audio/xmms-imms/distinfo
Normal file
1
audio/xmms-imms/distinfo
Normal file
@ -0,0 +1 @@
|
|||||||
|
MD5 (imms-1.0.tar.bz2) = 32b46ac3ae1775a8a5e09273664b5f25
|
17
audio/xmms-imms/files/patch-fetcher.cc
Normal file
17
audio/xmms-imms/files/patch-fetcher.cc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
--- fetcher.cc.orig Sun Jan 25 16:55:21 2004
|
||||||
|
+++ fetcher.cc Wed Feb 11 18:34:39 2004
|
||||||
|
@@ -200,8 +200,12 @@
|
||||||
|
return identified;
|
||||||
|
|
||||||
|
// Erase the first occurrence of the artist
|
||||||
|
- list<string>::iterator i = find(file_parts.begin(), file_parts.end(),
|
||||||
|
- artist);
|
||||||
|
+ list<string>::iterator i = file_parts.begin();
|
||||||
|
+ while (i != file_parts.end()) {
|
||||||
|
+ if (*i == artist)
|
||||||
|
+ break;
|
||||||
|
+ i++;
|
||||||
|
+ }
|
||||||
|
if (i != file_parts.end())
|
||||||
|
file_parts.erase(i);
|
||||||
|
|
34
audio/xmms-imms/files/patch-imms.cc
Normal file
34
audio/xmms-imms/files/patch-imms.cc
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
--- imms.cc.orig Wed Feb 11 17:47:21 2004
|
||||||
|
+++ imms.cc Wed Feb 11 18:03:41 2004
|
||||||
|
@@ -1,7 +1,6 @@
|
||||||
|
#include <time.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <math.h>
|
||||||
|
-#include <stdlib.h> // for (s)random
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
@@ -43,23 +42,6 @@
|
||||||
|
//////////////////////////////////////////////
|
||||||
|
|
||||||
|
string last_song;
|
||||||
|
-
|
||||||
|
-// Random
|
||||||
|
-int imms_random(int max)
|
||||||
|
-{
|
||||||
|
- int rand_num;
|
||||||
|
- static struct random_data rand_data;
|
||||||
|
- static char rand_state[256];
|
||||||
|
- static bool initialized = false;
|
||||||
|
- if (!initialized)
|
||||||
|
- {
|
||||||
|
- initstate_r(time(0), rand_state, sizeof(rand_state), &rand_data);
|
||||||
|
- initialized = true;
|
||||||
|
- }
|
||||||
|
- random_r(&rand_data, &rand_num);
|
||||||
|
- double cof = rand_num / (RAND_MAX + 1.0);
|
||||||
|
- return (int)(max * cof);
|
||||||
|
-}
|
||||||
|
|
||||||
|
// Imms
|
||||||
|
Imms::Imms()
|
24
audio/xmms-imms/files/patch-picker.cc
Normal file
24
audio/xmms-imms/files/patch-picker.cc
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
--- picker.cc.orig Sun Jan 25 16:55:21 2004
|
||||||
|
+++ picker.cc Wed Feb 11 18:47:20 2004
|
||||||
|
@@ -1,4 +1,5 @@
|
||||||
|
#include <iostream>
|
||||||
|
+#include <math.h>
|
||||||
|
|
||||||
|
#include "picker.h"
|
||||||
|
#include "strmanip.h"
|
||||||
|
@@ -31,9 +32,12 @@
|
||||||
|
|
||||||
|
SongData data(position, path);
|
||||||
|
|
||||||
|
- if (find(candidates.begin(), candidates.end(), data)
|
||||||
|
- != candidates.end())
|
||||||
|
- return true;
|
||||||
|
+ Candidates::iterator i = candidates.begin();
|
||||||
|
+ while (i != candidates.end()) {
|
||||||
|
+ if (*i == data)
|
||||||
|
+ return true;
|
||||||
|
+ i++;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
int cost = fetch_song_info(data);
|
||||||
|
|
55
audio/xmms-imms/files/patch-plugin.cc
Normal file
55
audio/xmms-imms/files/patch-plugin.cc
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
--- plugin.cc.orig Sun Jan 25 16:55:21 2004
|
||||||
|
+++ plugin.cc Wed Feb 11 18:51:51 2004
|
||||||
|
@@ -5,6 +5,9 @@
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <time.h>
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <fcntl.h>
|
||||||
|
+#include <limits.h>
|
||||||
|
|
||||||
|
#include <xmms/plugin.h>
|
||||||
|
#include <xmms/xmmsctrl.h>
|
||||||
|
@@ -21,6 +24,7 @@
|
||||||
|
|
||||||
|
// Local vars
|
||||||
|
static Imms *imms = NULL;
|
||||||
|
+static int urandom = -1;
|
||||||
|
unsigned int time_left = 1000, sloppy_skips = 0;
|
||||||
|
int last_plpos = -2, cur_plpos, pl_length = -1;
|
||||||
|
int good_length = 0, song_length = 0, delay = 0;
|
||||||
|
@@ -39,6 +43,15 @@
|
||||||
|
FIND_NEXT = 2
|
||||||
|
} state;
|
||||||
|
|
||||||
|
+// Random
|
||||||
|
+int imms_random(int max)
|
||||||
|
+{
|
||||||
|
+ unsigned long rand_num;
|
||||||
|
+ (void)read(urandom, &rand_num, sizeof(rand_num));
|
||||||
|
+ double cof = rand_num / (ULONG_MAX + 1.0);
|
||||||
|
+ return (int)(max * cof);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
// Wrapper that frees memory
|
||||||
|
string imms_get_playlist_item(int at)
|
||||||
|
{
|
||||||
|
@@ -62,14 +75,17 @@
|
||||||
|
|
||||||
|
void imms_init()
|
||||||
|
{
|
||||||
|
- if (!imms)
|
||||||
|
+ if (!imms) {
|
||||||
|
imms = new Imms();
|
||||||
|
+ urandom = open("/dev/urandom", O_RDONLY);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
state = IDLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void imms_cleanup(void)
|
||||||
|
{
|
||||||
|
+ close(urandom);
|
||||||
|
delete imms;
|
||||||
|
imms = 0;
|
||||||
|
}
|
14
audio/xmms-imms/files/patch-plugin.h
Normal file
14
audio/xmms-imms/files/patch-plugin.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- plugin.h.orig Wed Feb 11 17:44:30 2004
|
||||||
|
+++ plugin.h Wed Feb 11 17:45:06 2004
|
||||||
|
@@ -1,7 +1,11 @@
|
||||||
|
#ifndef __PLUGIN_H
|
||||||
|
#define __PLUGIN_H
|
||||||
|
|
||||||
|
+#if HAVE_STDINT_H
|
||||||
|
#include <stdint.h>
|
||||||
|
+#else
|
||||||
|
+#include <sys/types.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
11
audio/xmms-imms/files/patch-rules.mk
Normal file
11
audio/xmms-imms/files/patch-rules.mk
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- rules.mk.orig Sun Jan 25 16:55:21 2004
|
||||||
|
+++ rules.mk Wed Feb 11 18:43:22 2004
|
||||||
|
@@ -57,7 +57,7 @@
|
||||||
|
$(warning Use 'make install-user' to install for the current user only.)
|
||||||
|
|
||||||
|
install-system: libimms.so
|
||||||
|
- ${INSTALL_PROGRAM} libimms.so ${DESTDIR}`xmms-config --visualization-plugin-dir`
|
||||||
|
+ ${INSTALL_PROGRAM} libimms.so `xmms-config --visualization-plugin-dir`
|
||||||
|
|
||||||
|
user-message:
|
||||||
|
$(warning Defaulting to installing for current user only.)
|
14
audio/xmms-imms/files/patch-spectrum.h
Normal file
14
audio/xmms-imms/files/patch-spectrum.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- spectrum.h.orig Sun Jan 25 16:55:21 2004
|
||||||
|
+++ spectrum.h Wed Feb 11 17:45:20 2004
|
||||||
|
@@ -1,7 +1,11 @@
|
||||||
|
#ifndef __SPECTRUM_H
|
||||||
|
#define __SPECTRUM_H
|
||||||
|
|
||||||
|
+#if HAVE_STDINT_H
|
||||||
|
#include <stdint.h>
|
||||||
|
+#else
|
||||||
|
+#include <sys/types.h>
|
||||||
|
+#endif
|
||||||
|
#include <time.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
19
audio/xmms-imms/files/patch-vars.mk.in
Normal file
19
audio/xmms-imms/files/patch-vars.mk.in
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
--- vars.mk.in.orig Sun Jan 25 16:55:21 2004
|
||||||
|
+++ vars.mk.in Wed Feb 11 18:40:43 2004
|
||||||
|
@@ -4,14 +4,13 @@
|
||||||
|
INSTALL_PROGRAM = @INSTALL@
|
||||||
|
DESTDIR = @prefix@
|
||||||
|
|
||||||
|
-SHELL = bash
|
||||||
|
XMMS_OBJ = plugin.o interface.o libimmscore.a
|
||||||
|
CORE_OBJ = imms.o immsdb.o fetcher.o picker.o spectrum.o sqldb.o \
|
||||||
|
songinfo.o regexx.o strmanip.o levenshtein.o xidle.o md5.o
|
||||||
|
|
||||||
|
-CFLAGS = `xmms-config --cflags` @DEBUG_CFLAGS@ -Wall -fPIC -D_REENTRANT
|
||||||
|
+CFLAGS = `xmms-config --cflags` @CFLAGS@ -Wall -fPIC -D_REENTRANT
|
||||||
|
CPPFLAGS = ${CFLAGS} -pedantic -fno-rtti
|
||||||
|
-LDFLAGS = `xmms-config --libs` @LIBS@
|
||||||
|
+LDFLAGS = `xmms-config --libs` -lc @LIBS@
|
||||||
|
ARFLAGS = rs
|
||||||
|
|
||||||
|
default: all
|
9
audio/xmms-imms/pkg-descr
Normal file
9
audio/xmms-imms/pkg-descr
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
IMMS is an intelligent playlist plug-in for XMMS that tracks your
|
||||||
|
listening patterns and dynamically adapts to your taste. It is
|
||||||
|
incredibly unobtrusive and easy to use as it requires no direct user
|
||||||
|
interaction.
|
||||||
|
|
||||||
|
WWW: http://www.luminal.org/wiki/index.php/IMMS/IMMS
|
||||||
|
Author: Michael Grigoriev <mag@luminal.org>
|
||||||
|
|
||||||
|
- Brian Feldman <green@FreeBSD.org>
|
1
audio/xmms-imms/pkg-plist
Normal file
1
audio/xmms-imms/pkg-plist
Normal file
@ -0,0 +1 @@
|
|||||||
|
lib/xmms/Visualization/libimms.so
|
Loading…
Reference in New Issue
Block a user