aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/id3v2.erl4
-rw-r--r--server/media.erl21
2 files changed, 21 insertions, 4 deletions
diff --git a/server/id3v2.erl b/server/id3v2.erl
index 196288a..fc49183 100644
--- a/server/id3v2.erl
+++ b/server/id3v2.erl
@@ -421,7 +421,7 @@ v1genre(_) -> "Unknown".
%% Tests
%% ------------------------------------------------------------
--define(TESTPATTERN, "/media/everything/music/The Roots/Things Fall Apart/*.mp3").
+-define(TESTPATTERN, "./ac/*.mp3").
test() ->
Start = now(),
@@ -431,7 +431,7 @@ test() ->
read_files([FN|Rest], Total, Fail) ->
case read_file(FN) of
{ok, Props} ->
- ?DBG({?GV(trck, Props), ?GV(tit2, Props)}),
+ ?DBG({?GV(tpe1, Props), ?GV(tit2, Props)}),
read_files(Rest, Total+1, Fail);
not_found ->
read_files(Rest, Total+1, Fail+1)
diff --git a/server/media.erl b/server/media.erl
index a761f64..3678ff3 100644
--- a/server/media.erl
+++ b/server/media.erl
@@ -1,5 +1,5 @@
-module(media).
--export([init/0,insert/3, ask/2]).
+-export([init/0,insert/3, ask/2, all/0, play/3]).
% Since we are not willing to calculate and deliver all the id3 tags everytime they are requested,
% we try to get something persistent with mnesia.
@@ -42,5 +42,22 @@ ask(Artist, Title) ->
{atomic, Results} = mnesia:transaction(F),
Results.
+% Just in case the client is interested in everything we got.
+
+all() ->
+ F = fun() ->
+ mnesia:match({track, '_','_','_','_','_'})
+ end,
+ {atomic, Results} = mnesia:transaction(F),
+ Results.
+
% We want to play mp3s from our database.
-play(Artist, Title) -> io:format("blub").
+
+play(Artist, Title, Callback) ->
+ [Head|_] = ask(Artist, Title),
+ {_, artist, title, _, _, fp} = Head,
+ Cmd = "mplayer -quiet " ++ fp,
+ Port = erlang:open_port({spawn, Cmd}, [exit_status]).
+
+% We want to execute commands locally
+