Skip to content

Commit 6dffb0a

Browse files
committed
update
1 parent 980c8ec commit 6dffb0a

File tree

8 files changed

+36
-35
lines changed

8 files changed

+36
-35
lines changed

erlang/file/Makefile

+5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
all: compile
44

5+
ERL = erl -boot start_clean -pa ../lib -pa ../lib/lib_misc
6+
57
ERLC = erlc +debug_info
68

79
MODS = id3_v1
@@ -11,6 +13,9 @@ MODS = id3_v1
1113

1214
compile: ${MODS:%=%.beam}
1315

16+
id3:
17+
${ERL} -s id3_v1 test
18+
1419
.PHONY:clean
1520

1621
clean:

erlang/file/Sorry.mp3

-2.95 MB
Binary file not shown.

erlang/file/data1.dat

-6
This file was deleted.

erlang/file/id3_v1.erl

+11-17
Original file line numberDiff line numberDiff line change
@@ -2,54 +2,48 @@
22
-import(lists, [filter/2, map/2, reverse/1]).
33
-export([test/0, dir/1, read_id3_tag/1]).
44

5-
test() -> dir("./").
5+
test() -> dir(".").
66

77
dir(Dir) ->
8-
Files = lib_find:files(Dir, "*.mp3", true),
8+
Files = lib_files_find:files(Dir, "*.mp3", true),
99
L1 = map(fun(I) ->
1010
{I, (catch read_id3_tag(I))}
1111
end, Files),
12+
io:format("L1 ~p~n", [L1]),
1213
L2 = filter(fun({_, error}) -> false;
1314
(_) -> true
1415
end, L1),
16+
io:format("L2 ~p~n", [L2]),
1517
lib_misc:dump("mp3data", L2).
1618

1719
read_id3_tag(File) ->
20+
io:format("file : ~p~n", [File]),
1821
case file:open(File, [read, binary, raw]) of
1922
{ok, S} ->
2023
Size = filelib:file_size(File),
2124
{ok, B2} = file:pread(S, Size-128, 128),
2225
Result = parse_v1_tag(B2),
26+
io:format("parse v1 tag result : ~p, ~p ~n", [Result, B2]),
2327
file:close(S),
2428
Result;
2529
Error ->
2630
{File, Error}
2731
end.
2832

29-
parse_v1_tag(<<$T, $A, $G,
33+
parse_v1_tag(<<$T, $A, $G,
3034
Title:30/binary, Artist:30/binary,
3135
Album:30/binary, _Year:4/binary,
3236
_Comment:28/binary, 0:8, Track:8, _Genre:8>>) ->
3337
{"ID3v1.1",
34-
[{track, Track}, {title, trim(Title)},
35-
{aritist, trim(Artist)}, {album, trim(Album)}]};
38+
[{track, Track}, {title, lib_misc:trim(Title)},
39+
{aritist, lib_misc:trim(Artist)}, {album, lib_misc:trim(Album)}]};
3640

3741
parse_v1_tag(<<$T, $A, $G,
3842
Title:30/binary, Artist:30/binary,
3943
Album:30/binary, _Year:4/binary,
4044
_Comment:30/binary, _Genre:8>>) ->
4145
{"ID3v1",
42-
[{title, trim(Title)},
43-
{aritist, trim(Artist)}, {album, trim(Album)}]};
46+
[{title, lib_misc:trim(Title)},
47+
{aritist, lib_misc:trim(Artist)}, {album, lib_misc:trim(Album)}]};
4448

4549
parse_v1_tag(_) -> error.
46-
47-
trim(Bin) ->
48-
list_to_binary(trim_blanks(binary_to_list(Bin))).
49-
50-
trim_blanks(X) -> reverse(skip_blanks_and_zero(reverse(X))).
51-
52-
skip_blanks_and_zero([$\s|T]) -> skip_blanks_and_zero(T);
53-
skip_blanks_and_zero([0|T]) -> skip_blanks_and_zero(T);
54-
skip_blanks_and_zero(X) -> X.
55-

erlang/lib/lib_misc/lib_misc.erl

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
11
-module(lib_misc).
2+
3+
-import(lists, [all/2, any/2, filter/2, reverse/1, reverse/2,
4+
foreach/2, map/2, member/2, sort/1]).
5+
26
-export([string2value/1, sleep/1, random_seed/0,
3-
dump/2]).
7+
dump/2, trim/1]).
48

59
string2value(L) -> string2value(L, []).
610
string2value([], N) -> list_to_tuple(lists:reverse(N));
711
string2value([H|T], N) -> string2value(T, [H|N]).
812

13+
trim(Bin) -> list_to_binary(trim_blanks(binary_to_list(Bin))).
14+
15+
trim_blanks(X) -> reverse(skip_blanks_and_zero(reverse(X))).
16+
17+
skip_blanks_and_zero([$\s | T]) -> skip_blanks_and_zero(T);
18+
skip_blanks_and_zero([0 | T]) -> skip_blanks_and_zero(T);
19+
skip_blanks_and_zero(X) -> X.
920

1021
sleep(T) ->
1122
receive

erlang/shout/Makefile

+7-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ERL = erl -boot start_clean -pa ../lib -pa ../lib/lib_misc
66

77
ERLC = erlc +debug_info
88

9-
MODS = shout mp3_manager
9+
MODS = shout mp3_manager id3_tag_lengths mp3_sync
1010

1111
.erl.beam:
1212
${ERLC} -W $<
@@ -20,3 +20,9 @@ mp3:
2020

2121
clean:
2222
rm -rf *.beam erl_crash.dump
23+
24+
#
25+
# make && make mp3
26+
# shout:start().
27+
# xmms http://127.0.0.1:3000
28+
#

erlang/shout/mp3_manager.erl

+1-10
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ parse_v1_tag(<<$T, $A, $G, B/binary>>) ->
103103
{Album, B3} = split_binary(B2, 30),
104104
{_Year, B4} = split_binary(B3, 30),
105105
{_Comment, <<K, Track, _Gendre>>} = split_binary(B4, 28),
106-
L = [{title, trim(Title)}, {artist, trim(Artist)}, {album, trim(Album)}],
106+
L = [{title, lib_misc:trim(Title)}, {artist, lib_misc:trim(Artist)}, {album, lib_misc:trim(Album)}],
107107
case K of
108108
0 ->
109109
{"ID3v1.1", [{track, Track} | L]};
@@ -112,12 +112,3 @@ parse_v1_tag(<<$T, $A, $G, B/binary>>) ->
112112
end;
113113
parse_v1_tag(_) ->
114114
no.
115-
116-
trim(Bin) ->
117-
list_to_binary(trim_blanks(binary_to_list(Bin))).
118-
119-
trim_blanks(X) -> reverse(skip_blanks_and_zero(reverse(X))).
120-
121-
skip_blanks_and_zero([$\s | T]) -> skip_blanks_and_zero(T);
122-
skip_blanks_and_zero([0 | T]) -> skip_blanks_and_zero(T);
123-
skip_blanks_and_zero(X) -> X.

erlang/shout/song.mp3

-5.09 MB
Binary file not shown.

0 commit comments

Comments
 (0)