]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/id3/id3.factor
use radix literals
[factor.git] / extra / id3 / id3.factor
index 22474a75264efb18585a0514b26a84d31919419f..f1ee2210612462fba15c6d38161648dba625b8ef 100644 (file)
@@ -7,6 +7,7 @@ io.encodings.utf16 assocs math.parser combinators.short-circuit
 fry namespaces combinators.smart splitting io.encodings.ascii
 arrays io.files.info unicode.case io.directories.search literals
 math.functions continuations ;
+FROM: alien.c-types => uchar ;
 IN: id3
 
 <PRIVATE
@@ -105,7 +106,7 @@ CONSTANT: id3v1+-length 227
 
 : synchsafe>seq ( n -- seq )
     dup 1 + log2 1 + 7 / ceiling
-    [ [ -7 shift ] keep HEX: 7f bitand  ] replicate nip reverse ;
+    [ [ -7 shift ] keep 0x7f bitand  ] replicate nip reverse ;
 
 : filter-text-data ( data -- filtered )
     [ printable? ] filter ;
@@ -118,7 +119,7 @@ CONSTANT: id3v1+-length 227
 
 : decode-text ( string -- string' )
     dup 2 short head
-    { { HEX: ff HEX: fe } { HEX: fe HEX: ff } } member?
+    { { 0xff 0xfe } { 0xfe 0xff } } member?
     utf16 ascii ? decode ;
 
 : (read-frame) ( seq -- frame )
@@ -152,7 +153,7 @@ CONSTANT: id3v1+-length 227
     } cleave ;
 
 : merge-frames ( id3 assoc -- id3 )
-    [ dup frames>> ] dip update ;
+    [ dup frames>> ] dip assoc-union! drop ;
 
 : merge-id3v1 ( id3 -- id3 )
     dup id3v1>frames frames>assoc merge-frames ;
@@ -209,7 +210,7 @@ PRIVATE>
 
 : mp3>id3 ( path -- id3/f )
     [
-        [ <id3> ] dip "uchar" <mapped-array>
+        [ <id3> ] dip uchar <mapped-array>
         [ dup id3v1? [ read-v1-tags merge-id3v1 ] [ drop ] if ]
         [ dup id3v1+? [ read-v1+-tags merge-id3v1 ] [ drop ] if ]
         [ dup id3v2? [ read-v2-tags ] [ drop ] if ]