Skip to content

Commit

Permalink
new binary-data definer syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
hannesm committed Jan 18, 2014
1 parent d2bed73 commit 03c3fc2
Show file tree
Hide file tree
Showing 26 changed files with 438 additions and 435 deletions.
2 changes: 1 addition & 1 deletion id3v2/id3v2-reader.dylan
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module: id3v2
module: id3v2
author: mb, Andreas Bogk and Hannes Mehnert
copyright: 2005-2011 mb, Andreas Bogk and Hannes Mehnert. All rights reserved.
license: see license.txt in this distribution
Expand Down
18 changes: 9 additions & 9 deletions id3v2/id3v2.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,18 @@ define method parse-frame
values(result, 8 * 4);
end;

define binary-data id3v2-string (container-frame)
define binary-data <id3v2-string> (<container-frame>)
end;

define binary-data id3v2-string-with-type (id3v2-string)
define binary-data <id3v2-string-with-type> (<id3v2-string>)
field string-type :: <unsigned-byte>;
end;

define binary-data ascii-string-with-type (id3v2-string-with-type)
define binary-data <ascii-string-with-type> (<id3v2-string-with-type>)
field string-data :: <externally-delimited-string>;
end;

define binary-data ascii-string (id3v2-string)
define binary-data <ascii-string> (<id3v2-string>)
field string-data :: <externally-delimited-string>;
end;

Expand All @@ -51,18 +51,18 @@ define method parse-frame
#x00 => <ascii-string-with-type>;
otherwise <ascii-string>;
end select;
parse-frame(string-type, packet);
parse-frame(string-type, packet)
end;

define binary-data id3v2-flags (container-frame)
define binary-data <id3v2-flags> (<container-frame>)
field unsynchronisation :: <1bit-unsigned-integer>;
field extended-header :: <1bit-unsigned-integer>;
field experimental-indicator :: <1bit-unsigned-integer>;
field footer-present :: <1bit-unsigned-integer>;
field dummy :: <4bit-unsigned-integer>; // must be zero
end;

define binary-data id3v2-frame (container-frame)
define binary-data <id3v2-frame> (<container-frame>)
field frame-id :: <externally-delimited-string>, static-length: 8 * 4;
field id3v2-frame-size :: <4byte-7bit-big-endian-unsigned-integer>,
fixup: byte-offset(frame-size(frame.id3v2-data));
Expand All @@ -77,7 +77,7 @@ define binary-data id3v2-frame (container-frame)
end if; */
end;

define binary-data id3v2-header (container-frame)
define binary-data <id3v2-header> (<container-frame>)
field identifier :: <externally-delimited-string>,
static-length: 8 * 3;
field major-version :: <unsigned-byte>;
Expand All @@ -86,7 +86,7 @@ define binary-data id3v2-header (container-frame)
field tag-size :: <4byte-7bit-big-endian-unsigned-integer>;
end;

define binary-data id3v2-tag (header-frame)
define binary-data <id3v2-tag> (<header-frame>)
field id3v2-header :: <id3v2-header>;
repeated field id3v2-frame :: <id3v2-frame>,
reached-end?: frame.frame-id.data[0] == #x00;
Expand Down
6 changes: 3 additions & 3 deletions protocols/bittorrent.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ copyright: 2005-2011 Andreas Bogk and Hannes Mehnert. All rights reserved.
license: see license.txt in this distribution
//incomplete from http://xbtt.sourceforge.net/udp_tracker_protocol.html
define binary-data bittorrent-announce (container-frame)
define binary-data <bittorrent-announce> (<container-frame>)
field connection-id :: <raw-frame> =
as(<raw-frame>,
#(#x0, #x0, #x04, #x17, #x27, #x10, #x19, #x80)),
Expand All @@ -31,7 +31,7 @@ define binary-data bittorrent-announce (container-frame)
field port :: <2byte-big-endian-unsigned-integer> = 6887;
end;

define binary-data bittorrent-announce-output (container-frame)
define binary-data <bittorrent-announce-output> (<container-frame>)
over <udp-frame> 6969;
field action :: <big-endian-unsigned-integer-4byte>;
field transaction-id :: <big-endian-unsigned-integer-4byte>;
Expand All @@ -42,7 +42,7 @@ define binary-data bittorrent-announce-output (container-frame)
reached-end?: #f;
end;

define binary-data ip-and-port (container-frame)
define binary-data <ip-and-port> (<container-frame>)
field ip :: <ipv4-address>;
field port :: <2byte-big-endian-unsigned-integer>;
end;
Loading

0 comments on commit 03c3fc2

Please sign in to comment.