emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/emms c848c18727 33/42: Change to emms-info-native- pref


From: ELPA Syncer
Subject: [elpa] externals/emms c848c18727 33/42: Change to emms-info-native- prefix
Date: Wed, 1 Nov 2023 15:58:01 -0400 (EDT)

branch: externals/emms
commit c848c18727b776aa83300179d0224fddc531a3dc
Author: Petteri Hintsanen <petterih@iki.fi>
Commit: Petteri Hintsanen <petterih@iki.fi>

    Change to emms-info-native- prefix
---
 emms-info-flac.el => emms-info-native-flac.el      |  74 +++----
 emms-info-mp3.el => emms-info-native-mp3.el        | 220 ++++++++++-----------
 emms-info-ogg.el => emms-info-native-ogg.el        | 119 +++++------
 emms-info-opus.el => emms-info-native-opus.el      |  71 +++----
 emms-info-spc.el => emms-info-native-spc.el        |  26 +--
 emms-info-vorbis.el => emms-info-native-vorbis.el  |  78 ++++----
 emms-info-native.el                                |  20 +-
 ...lac-tests.el => emms-info-native-flac-tests.el} |  18 +-
 ...-mp3-tests.el => emms-info-native-mp3-tests.el} |  60 +++---
 ...-ogg-tests.el => emms-info-native-ogg-tests.el} |  20 +-
 ...s-tests.el => emms-info-native-vorbis-tests.el} |  24 ++-
 test/emms-tests.el                                 |   2 -
 12 files changed, 363 insertions(+), 369 deletions(-)

diff --git a/emms-info-flac.el b/emms-info-native-flac.el
similarity index 72%
rename from emms-info-flac.el
rename to emms-info-native-flac.el
index bc2f82f41d..9b02a5246d 100644
--- a/emms-info-flac.el
+++ b/emms-info-native-flac.el
@@ -1,4 +1,4 @@
-;;; emms-info-flac.el --- EMMS info functions for FLAC files  -*- 
lexical-binding: t; -*-
+;;; emms-info-native-flac.el --- EMMS info functions for FLAC files  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
@@ -31,37 +31,37 @@
 ;;; Code:
 
 (require 'emms)
-(require 'emms-info-vorbis)
+(require 'emms-info-native-vorbis)
 (require 'bindat)
 
-(defconst emms-info-flac--max-peek-size (* 2048 1024)
+(defconst emms-info-native-flac--max-peek-size (* 2048 1024)
   "Maximum buffer size for metadata decoding.
-Functions in `emms-info-flac' read certain amounts of data into a
-temporary buffer while decoding metadata.  This variable controls
-the maximum size of that buffer: if more than
-`emms-info-flac--max-peek-size' bytes are needed, an error is
-signaled.
+Functions in `emms-info-native-flac' read certain amounts of data
+into a temporary buffer while decoding metadata.  This variable
+controls the maximum size of that buffer: if more than
+`emms-info-native-flac--max-peek-size' bytes are needed, an error
+is signaled.
 
 Technically metadata blocks can have almost arbitrary lengths,
 but in practice processing must be constrained to prevent memory
 exhaustion in case of garbled or malicious inputs.")
 
-(defconst emms-info-flac--meta-header-bindat-spec
+(defconst emms-info-native-flac--meta-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (flags u8)
         (length uint 24)
-        (_ unit (when (or (> length emms-info-flac--max-peek-size)
+        (_ unit (when (or (> length emms-info-native-flac--max-peek-size)
                           (= length 0))
                   (error "FLAC block length %s is invalid" length))))
     '((flags u8)
       (length u24)
-      (eval (when (or (> last emms-info-flac--max-peek-size)
+      (eval (when (or (> last emms-info-native-flac--max-peek-size)
                       (= last 0))
               (error "FLAC block length %s is invalid" last)))))
   "FLAC metadata block header specification.")
 
-(defconst emms-info-flac--stream-info-block-bindat-spec
+(defconst emms-info-native-flac--stream-info-block-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (min-block-size uint 16)
@@ -78,61 +78,61 @@ exhaustion in case of garbled or malicious inputs.")
       (md5 vec 16)))
   "FLAC stream info block specification.")
 
-(defconst emms-info-flac--comment-block-bindat-spec
+(defconst emms-info-native-flac--comment-block-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (vendor-length uint 32 'le)
-        (_ unit (when (> vendor-length emms-info-vorbis--max-vendor-length)
+        (_ unit (when (> vendor-length 
emms-info-native-vorbis--max-vendor-length)
                   (error "FLAC vendor length %s is too long"
                          vendor-length)))
         (vendor-string str vendor-length)
         (user-comments-list-length uint 32 'le)
-        (_ unit (when (> user-comments-list-length 
emms-info-vorbis--max-comments)
+        (_ unit (when (> user-comments-list-length 
emms-info-native-vorbis--max-comments)
                   (error "FLAC user comment list length %s is too long"
                          user-comments-list-length)))
         (user-comments repeat user-comments-list-length
-                       type emms-info-vorbis--comment-field-bindat-spec))
+                       type 
emms-info-native-vorbis--comment-field-bindat-spec))
     '((vendor-length u32r)
-      (eval (when (> last emms-info-vorbis--max-vendor-length)
+      (eval (when (> last emms-info-native-vorbis--max-vendor-length)
               (error "FLAC vendor length %s is too long" last)))
       (vendor-string str (vendor-length))
       (user-comments-list-length u32r)
-      (eval (when (> last emms-info-vorbis--max-comments)
+      (eval (when (> last emms-info-native-vorbis--max-comments)
               (error "FLAC user comment list length %s is too long"
                      last)))
       (user-comments repeat
                      (user-comments-list-length)
-                     (struct emms-info-vorbis--comment-field-bindat-spec))))
+                     (struct 
emms-info-native-vorbis--comment-field-bindat-spec))))
   "FLAC Vorbis comment block specification.")
 
-(defun emms-info-flac-decode-metadata (filename)
+(defun emms-info-native-flac-decode-metadata (filename)
   "Read and decode metadata from FLAC file FILENAME.
 Return comments in a list of (FIELD . VALUE) cons cells.
 Additionally return stream duration in `playing-time' field.
 
-See `emms-info-vorbis-extract-comments' for details."
-  (unless (emms-info-flac--has-signature filename)
+See `emms-info-native-vorbis-extract-comments' for details."
+  (unless (emms-info-native-flac--has-signature filename)
     (error "Invalid FLAC stream"))
   (let* ((blocks
-          (emms-info-flac--decode-meta-blocks
-           (emms-info-flac--file-inserter filename)))
+          (emms-info-native-flac--decode-meta-blocks
+           (emms-info-native-flac--file-inserter filename)))
          (comment-block
           (and (car blocks)
-               (bindat-unpack emms-info-flac--comment-block-bindat-spec
+               (bindat-unpack emms-info-native-flac--comment-block-bindat-spec
                               (car blocks))))
          (stream-info-block
           (and (cadr blocks)
-               (bindat-unpack emms-info-flac--stream-info-block-bindat-spec
+               (bindat-unpack 
emms-info-native-flac--stream-info-block-bindat-spec
                               (cadr blocks))))
          (user-comments
           (and comment-block
                (bindat-get-field comment-block 'user-comments)))
          (comments
           (and user-comments
-               (emms-info-vorbis-extract-comments user-comments)))
+               (emms-info-native-vorbis-extract-comments user-comments)))
          (playing-time
           (and stream-info-block
-               (emms-info-flac--decode-duration
+               (emms-info-native-flac--decode-duration
                 (emms-be-to-int
                  (bindat-get-field stream-info-block
                                    'sample-metadata))))))
@@ -140,7 +140,7 @@ See `emms-info-vorbis-extract-comments' for details."
            (when playing-time
              (list (cons "playing-time" playing-time))))))
 
-(defun emms-info-flac--has-signature (filename)
+(defun emms-info-native-flac--has-signature (filename)
   "Check for FLAC stream marker at the beginning of FILENAME.
 Return t if there is a valid stream marker, nil otherwise."
   (with-temp-buffer
@@ -148,13 +148,13 @@ Return t if there is a valid stream marker, nil 
otherwise."
     (insert-file-contents-literally filename nil 0 4)
     (looking-at "fLaC")))
 
-(defun emms-info-flac--file-inserter (filename)
+(defun emms-info-native-flac--file-inserter (filename)
   "Return a function that reads and inserts bytes from FILENAME.
-This is meant for `emms-info-flac--decode-meta-blocks'."
+This is meant for `emms-info-native-flac--decode-meta-blocks'."
   (lambda (offset end)
     (insert-file-contents-literally filename nil offset end t)))
 
-(defun emms-info-flac--decode-meta-blocks (read-func)
+(defun emms-info-native-flac--decode-meta-blocks (read-func)
   "Decode metadata blocks from data supplied by READ-FUNC.
 Go through each metadata block looking for comment and stream
 info blocks.  Extract and return them in a list, if found."
@@ -164,7 +164,7 @@ info blocks.  Extract and return them in a list, if found."
       (while (not last-flag)
         (funcall read-func offset (setq offset (+ offset 4)))
         (let* ((header
-                (bindat-unpack emms-info-flac--meta-header-bindat-spec
+                (bindat-unpack emms-info-native-flac--meta-header-bindat-spec
                                (buffer-string)))
                (end (+ offset (bindat-get-field header 'length)))
                (flags (bindat-get-field header 'flags))
@@ -184,10 +184,10 @@ info blocks.  Extract and return them in a list, if 
found."
           (setq offset end)))
       (list comment-block stream-info-block))))
 
-(defun emms-info-flac--decode-duration (sample-meta)
+(defun emms-info-native-flac--decode-duration (sample-meta)
   "Decode stream duration from SAMPLE-META.
 SAMPLE-META should be a part of stream info metadata block.  See
-`emms-info-flac--stream-info-block-bindat-spec'.
+`emms-info-native-flac--stream-info-block-bindat-spec'.
 
 Return the duration in seconds, or nil if it is not available."
   (let ((sample-rate (emms-extract-bits sample-meta 44 63))
@@ -196,6 +196,6 @@ Return the duration in seconds, or nil if it is not 
available."
                (> num-samples 0))
       (/ num-samples sample-rate))))
 
-(provide 'emms-info-flac)
+(provide 'emms-info-native-flac)
 
-;;; emms-info-flac.el ends here
+;;; emms-info-native-flac.el ends here
diff --git a/emms-info-mp3.el b/emms-info-native-mp3.el
similarity index 75%
rename from emms-info-mp3.el
rename to emms-info-native-mp3.el
index 5e897f4325..49e16519c9 100644
--- a/emms-info-mp3.el
+++ b/emms-info-native-mp3.el
@@ -1,4 +1,4 @@
-;;; emms-info-mp3.el --- EMMS info functions for MP3 files  -*- 
lexical-binding: t; -*-
+;;; emms-info-native-mp3.el --- EMMS info functions for MP3 files  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
@@ -47,57 +47,57 @@
 
 ;;; id3 code
 
-(defvar emms-info-id3v2--version 0
+(defvar emms-info-native-id3v2--version 0
   "Last decoded id3v2 version.")
 
-(defconst emms-info-id3v2--magic-pattern "ID3"
+(defconst emms-info-native-id3v2--magic-pattern "ID3"
   "id3v2 header magic pattern.")
 
-(defconst emms-info-id3v2--header-bindat-spec
+(defconst emms-info-native-id3v2--header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (file-identifier str 3)
-        (_ unit (unless (equal file-identifier emms-info-id3v2--magic-pattern)
+        (_ unit (unless (equal file-identifier 
emms-info-native-id3v2--magic-pattern)
                   (error "id3v2 framing mismatch: expected `%s', got `%s'"
-                         emms-info-id3v2--magic-pattern
+                         emms-info-native-id3v2--magic-pattern
                          file-identifier)))
         (version u8)
-        (_ unit (progn (setq emms-info-id3v2--version version) nil))
+        (_ unit (progn (setq emms-info-native-id3v2--version version) nil))
         (revision u8)
         (flags bits 1)
         (size-bytes vec 4)
-        (size unit (emms-info-id3v2--checked-size 'tag size-bytes)))
+        (size unit (emms-info-native-id3v2--checked-size 'tag size-bytes)))
     '((file-identifier str 3)
-      (eval (unless (equal last emms-info-id3v2--magic-pattern)
+      (eval (unless (equal last emms-info-native-id3v2--magic-pattern)
               (error "id3v2 framing mismatch: expected `%s', got `%s'"
-                     emms-info-id3v2--magic-pattern
+                     emms-info-native-id3v2--magic-pattern
                      last)))
       (version u8)
-      (eval (setq emms-info-id3v2--version last))
+      (eval (setq emms-info-native-id3v2--version last))
       (revision u8)
       (flags bits 1)
       (size-bytes vec 4)
-      (size eval (emms-info-id3v2--checked-size 'tag last))))
+      (size eval (emms-info-native-id3v2--checked-size 'tag last))))
   "id3v2 header specification.")
 
-(defconst emms-info-id3v2--frame-header-bindat-spec
+(defconst emms-info-native-id3v2--frame-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
-        (id str (if (= emms-info-id3v2--version 2) 3 4))
-        (_ unit (unless (emms-info-id3v2--valid-frame-id-p id)
+        (id str (if (= emms-info-native-id3v2--version 2) 3 4))
+        (_ unit (unless (emms-info-native-id3v2--valid-frame-id-p id)
                   (error "id3v2 frame id `%s' is invalid" id)))
-        (size-bytes vec (if (= emms-info-id3v2--version 2) 3 4))
-        (size unit (emms-info-id3v2--checked-size 'frame size-bytes))
-        (flags bits (if (= emms-info-id3v2--version 2) 0 2)))
-    '((id str (eval (if (= emms-info-id3v2--version 2) 3 4)))
-      (eval (unless (emms-info-id3v2--valid-frame-id-p last)
+        (size-bytes vec (if (= emms-info-native-id3v2--version 2) 3 4))
+        (size unit (emms-info-native-id3v2--checked-size 'frame size-bytes))
+        (flags bits (if (= emms-info-native-id3v2--version 2) 0 2)))
+    '((id str (eval (if (= emms-info-native-id3v2--version 2) 3 4)))
+      (eval (unless (emms-info-native-id3v2--valid-frame-id-p last)
               (error "id3v2 frame id `%s' is invalid" last)))
-      (size-bytes vec (eval (if (= emms-info-id3v2--version 2) 3 4)))
-      (size eval (emms-info-id3v2--checked-size 'frame last))
-      (flags bits (eval (if (= emms-info-id3v2--version 2) 0 2)))))
+      (size-bytes vec (eval (if (= emms-info-native-id3v2--version 2) 3 4)))
+      (size eval (emms-info-native-id3v2--checked-size 'frame last))
+      (flags bits (eval (if (= emms-info-native-id3v2--version 2) 0 2)))))
   "id3v2 frame header specification.")
 
-(defconst emms-info-id3v2--frame-to-info
+(defconst emms-info-native-id3v2--frame-to-info
   '(("TAL"  . "album")
     ("TALB" . "album")
     ("TPE2" . "albumartist")
@@ -261,35 +261,35 @@ Sources:
     (125 . "Dance Hall"))
   "id3v1 genres.")
 
-(defconst emms-info-id3v2--text-encodings
+(defconst emms-info-native-id3v2--text-encodings
   '((0 . latin-1)
     (1 . utf-16)
     (2 . uft-16be)
     (3 . utf-8))
   "id3v2 text encodings.")
 
-(defun emms-info-id3v2--valid-frame-id-p (id)
+(defun emms-info-native-id3v2--valid-frame-id-p (id)
   "Return t if ID is a proper id3v2 frame identifier, nil otherwise."
-  (if (= emms-info-id3v2--version 2)
+  (if (= emms-info-native-id3v2--version 2)
       (string-match "^[A-Z0-9]\\{3\\}$" id)
     (string-match "^[A-Z0-9]\\{4\\}$" id)))
 
-(defun emms-info-id3v2--checked-size (elt bytes)
+(defun emms-info-native-id3v2--checked-size (elt bytes)
   "Calculate id3v2 element ELT size from BYTES.
 ELT must be either `tag' or `frame'.
 
 Return the size.  Signal an error if the size is zero."
   (let ((size (cond ((eq elt 'tag)
-                     (emms-info-id3v2--decode-size bytes t))
+                     (emms-info-native-id3v2--decode-size bytes t))
                     ((eq elt 'frame)
-                     (if (= emms-info-id3v2--version 4)
-                         (emms-info-id3v2--decode-size bytes t)
-                       (emms-info-id3v2--decode-size bytes nil))))))
+                     (if (= emms-info-native-id3v2--version 4)
+                         (emms-info-native-id3v2--decode-size bytes t)
+                       (emms-info-native-id3v2--decode-size bytes nil))))))
     (if (zerop size)
         (error "id3v2 tag/frame size is zero")
       size)))
 
-(defun emms-info-id3v2--decode-size (bytes syncsafe)
+(defun emms-info-native-id3v2--decode-size (bytes syncsafe)
   "Decode id3v2 element size from BYTES.
 Depending on SYNCSAFE, BYTES are interpreted as 7- or 8-bit
 bytes, MSB first.
@@ -302,23 +302,23 @@ Return the decoded size."
                                     (logand elt mask)))
                                (reverse bytes)))))
 
-(defun emms-info-id3v2--decode-header (filename)
+(defun emms-info-native-id3v2--decode-header (filename)
   "Read and decode id3v2 header from FILENAME."
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert-file-contents-literally filename nil 0 10)
-    (bindat-unpack emms-info-id3v2--header-bindat-spec
+    (bindat-unpack emms-info-native-id3v2--header-bindat-spec
                    (buffer-string))))
 
-(defun emms-info-id3v2--checked-ext-header-size (filename)
+(defun emms-info-native-id3v2--checked-ext-header-size (filename)
   "Read and decode id3v2 extended header size from FILENAME.
 Return the size.  Signal an error if the size is zero."
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert-file-contents-literally filename nil 10 14)
-    (emms-info-id3v2--checked-size 'frame (buffer-string))))
+    (emms-info-native-id3v2--checked-size 'frame (buffer-string))))
 
-(defun emms-info-id3v2--decode-frames (filename begin end unsync)
+(defun emms-info-native-id3v2--decode-frames (filename begin end unsync)
   "Read and decode id3v2 text frames from FILENAME.
 BEGIN should be the offset of first byte of the first frame, and
 END should be the offset after the complete id3v2 tag.
@@ -328,11 +328,11 @@ unsynchronization and decoded as such.
 
 Return metadata in a list of (FIELD . VALUE) cons cells."
   (let ((offset begin)
-        (limit (- end (emms-info-id3v2--frame-header-size)))
+        (limit (- end (emms-info-native-id3v2--frame-header-size)))
         comments)
     (ignore-errors
       (while (< offset limit)
-        (let* ((frame-data (emms-info-id3v2--decode-frame
+        (let* ((frame-data (emms-info-native-id3v2--decode-frame
                             filename offset unsync))
                (next-frame-offset (car frame-data))
                (comment (cdr frame-data)))
@@ -340,41 +340,41 @@ Return metadata in a list of (FIELD . VALUE) cons cells."
           (setq offset next-frame-offset))))
     comments))
 
-(defun emms-info-id3v2--frame-header-size ()
+(defun emms-info-native-id3v2--frame-header-size ()
   "Return the last decoded header size in bytes."
-  (if (= emms-info-id3v2--version 2) 6 10))
+  (if (= emms-info-native-id3v2--version 2) 6 10))
 
-(defun emms-info-id3v2--decode-frame (filename offset unsync)
+(defun emms-info-native-id3v2--decode-frame (filename offset unsync)
   "Read and decode a single id3v2 frame from FILENAME.
 Start reading the frame from byte offset OFFSET.  See
-`emms-info-id3v2--read-frame-data' for details on UNSYNC.
+`emms-info-native-id3v2--read-frame-data' for details on UNSYNC.
 
 Skip frames that do not map to any info-id in
-`emms-info-id3v2--frame-to-info'.
+`emms-info-native-id3v2--frame-to-info'.
 
 Return cons cell (NEXT . FRAME), where NEXT is the offset of the
 next frame (if any) and FRAME is the decoded frame.  See
-`emms-info-id3v2--decode-frame-data'."
-  (let* ((decoded (emms-info-id3v2--decode-frame-header
+`emms-info-native-id3v2--decode-frame-data'."
+  (let* ((decoded (emms-info-native-id3v2--decode-frame-header
                    filename offset))
          (data-offset (car decoded))
          (header (cdr decoded))
          (frame-id (bindat-get-field header 'id))
-         (info-id (cdr (assoc frame-id emms-info-id3v2--frame-to-info)))
+         (info-id (cdr (assoc frame-id emms-info-native-id3v2--frame-to-info)))
          (size (bindat-get-field header 'size)))
     (if (or info-id unsync)
         ;; Note that if unsync is non-nil, we have to always read the
         ;; frame to determine next-frame-offset.
-        (let* ((data (emms-info-id3v2--read-frame-data
+        (let* ((data (emms-info-native-id3v2--read-frame-data
                       filename data-offset size unsync))
                (next-frame-offset (car data))
-               (value (emms-info-id3v2--decode-frame-data
+               (value (emms-info-native-id3v2--decode-frame-data
                        (cdr data) info-id)))
           (cons next-frame-offset value))
       ;; Skip the frame.
       (cons (+ data-offset size) nil))))
 
-(defun emms-info-id3v2--decode-frame-header (filename begin)
+(defun emms-info-native-id3v2--decode-frame-header (filename begin)
   "Read and decode id3v2 frame header from FILENAME.
 Start reading from byte offset BEGIN.
 
@@ -383,13 +383,13 @@ offset after the frame header, and HEADER is the decoded 
frame
 header."
   (with-temp-buffer
     (set-buffer-multibyte nil)
-    (let ((end (+ begin (emms-info-id3v2--frame-header-size))))
+    (let ((end (+ begin (emms-info-native-id3v2--frame-header-size))))
       (insert-file-contents-literally filename nil begin end)
       (cons end
-            (bindat-unpack emms-info-id3v2--frame-header-bindat-spec
+            (bindat-unpack emms-info-native-id3v2--frame-header-bindat-spec
                            (buffer-string))))))
 
-(defun emms-info-id3v2--read-frame-data (filename begin num-bytes unsync)
+(defun emms-info-native-id3v2--read-frame-data (filename begin num-bytes 
unsync)
   "Read NUM-BYTES of raw id3v2 frame data from FILENAME.
 Start reading from offset BEGIN.  If UNSYNC is non-nil, all \"FF
 00\" byte combinations are replaced by \"FF\".  Replaced byte
@@ -417,11 +417,11 @@ data."
         (insert-file-contents-literally filename nil begin end)
         (cons end (buffer-string))))))
 
-(defun emms-info-id3v2--decode-frame-data (data info-id)
+(defun emms-info-native-id3v2--decode-frame-data (data info-id)
   "Decode id3v2 text frame data DATA.
 If INFO-ID is `user-defined', assume that DATA is a TXXX frame
 with key/value-pair.  Extract the key and, if it is a mapped
-element in `emms-info-id3v2--frame-to-info', use it as INFO-ID.
+element in `emms-info-native-id3v2--frame-to-info', use it as INFO-ID.
 
 If INFO-ID is `genre', assume that DATA is either an integral
 id3v1 genre reference or a plain genre string.  In the former
@@ -431,7 +431,7 @@ in the latter case use the genre string verbatim.
 Return a cons cell (INFO-ID . VALUE) where VALUE is the decoded
 string, or nil if the decoding failed."
   (when info-id
-    (let ((str (emms-info-id3v2--decode-string data)))
+    (let ((str (emms-info-native-id3v2--decode-string data)))
       (cond ((string-empty-p str) nil)
             ((stringp info-id) (cons info-id str))
             ((eq info-id 'genre)
@@ -445,52 +445,52 @@ string, or nil if the decoding failed."
              (let* ((key-val (split-string str (string 0)))
                     (key (downcase (car key-val)))
                     (val (cadr key-val)))
-               (when (and (rassoc key emms-info-id3v2--frame-to-info)
+               (when (and (rassoc key emms-info-native-id3v2--frame-to-info)
                           (not (string-empty-p val)))
                  (cons key val))))))))
 
-(defun emms-info-id3v2--decode-string (bytes)
+(defun emms-info-native-id3v2--decode-string (bytes)
   "Decode id3v2 text information from BYTES.
 Remove the terminating null byte, if any.
 
 Return the text as string."
-  (let* ((encoding (emms-info-id3v2--text-encoding bytes))
+  (let* ((encoding (emms-info-native-id3v2--text-encoding bytes))
          (decoded (decode-coding-string (seq-rest bytes) encoding)))
     (if (and (> (length decoded) 0)
              (equal (substring decoded -1) "\0"))
         (substring decoded 0 -1)
       decoded)))
 
-(defun emms-info-id3v2--text-encoding (bytes)
+(defun emms-info-native-id3v2--text-encoding (bytes)
   "Return the encoding for text information BYTES."
   (alist-get (seq-first bytes)
-             emms-info-id3v2--text-encodings))
+             emms-info-native-id3v2--text-encodings))
 
 
 ;;; MP3 code
 
-(defconst emms-info-mp3--versions
+(defconst emms-info-native-mp3--versions
   '((0 . mpeg25)
     (1 . reserved)
     (2 . mpeg2)
     (3 . mpeg1))
   "MPEG versions.")
 
-(defconst emms-info-mp3--layers
+(defconst emms-info-native-mp3--layers
   '((0 . reserved)
     (1 . layerIII)
     (2 . layerII)
     (3 . layerI))
   "MPEG Audio Layers.")
 
-(defconst emms-info-mp3--channel-modes
+(defconst emms-info-native-mp3--channel-modes
   '((0 . stereo)
     (1 . joint-stereo)
     (2 . dual-channel)
     (3 . single-channel))
   "MPEG channel modes.")
 
-(defconst emms-info-mp3--bit-rates
+(defconst emms-info-native-mp3--bit-rates
   '((mpeg1-layerI        free  32  64  96  128  160  192  224  256  288  320  
352  384  416  448  reserved)
     (mpeg1-layerII       free  32  48  56  64   80   96   112  128  160  192  
224  256  320  384  reserved)
     (mpeg1-layerIII      free  32  40  48  56   64   80   96   112  128  160  
192  224  256  320  reserved)
@@ -498,20 +498,20 @@ Return the text as string."
     (mpeg2x-layerII-III  free  8   16  24  32   40   48   56   64   80   96   
112  128  144  160  reserved))
   "Bit rates for each MPEG version/layer combination.")
 
-(defconst emms-info-mp3--samples-per-frame
+(defconst emms-info-native-mp3--samples-per-frame
   '((layerI          . 384)
     (layerII         . 1152)
     (layerIII-mpeg1  . 1152)
     (layerIII-mpeg2x . 576))
   "Samples per frame for each MPEG version/layer combination.")
 
-(defconst emms-info-mp3--sample-rates
+(defconst emms-info-native-mp3--sample-rates
   '((mpeg1   44100  48000  32000  reserved)
     (mpeg2   22050  24000  16000  reserved)
     (mpeg25  11025  12000  8000   reserved))
   "Sample rate for each MPEG version/layer combination.")
 
-(defconst emms-info-mp3--vbri-header-bindat-spec
+(defconst emms-info-native-mp3--vbri-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (id str 4)
@@ -530,7 +530,7 @@ Return the text as string."
 This specification is purposefully incomplete, as we are
 interested only in the frame count.")
 
-(defconst emms-info-mp3--xing-header-bindat-spec
+(defconst emms-info-native-mp3--xing-header-bindat-spec
     (if (eval-when-compile (fboundp 'bindat-type))
         (bindat-type
           (id vec 4)
@@ -543,33 +543,33 @@ interested only in the frame count.")
 This specification is purposefully incomplete, as we are
 interested only in the frame count.")
 
-(defun emms-info-mp3-decode-metadata (filename)
+(defun emms-info-native-mp3-decode-metadata (filename)
   "Read and decode metadata from MP3 file FILENAME.
 Return metadata in a list of (FIELD . VALUE) cons cells, or nil
 in case of errors or if there were no known fields in FILENAME.
 Also try to estimate the stream duration, and return it in
 `playing-time' field if successful.
 
-See `emms-info-id3v2--frame-to-info' for recognized fields."
-  (let* (emms-info-id3v2--version
-         (header (emms-info-id3v2--decode-header filename))
+See `emms-info-native-id3v2--frame-to-info' for recognized fields."
+  (let* (emms-info-native-id3v2--version
+         (header (emms-info-native-id3v2--decode-header filename))
          (tag-size (bindat-get-field header 'size))
          (unsync (memq 7 (bindat-get-field header 'flags)))
          (offset 10))
     (when (memq 6 (bindat-get-field header 'flags))
       ;; Skip the extended header.
       (setq offset (+ offset
-                      (emms-info-id3v2--checked-ext-header-size
+                      (emms-info-native-id3v2--checked-ext-header-size
                        filename))))
     (let ((tags
-           (emms-info-id3v2--decode-frames
+           (emms-info-native-id3v2--decode-frames
             filename offset (+ tag-size 10) unsync))
           (playtime
-           (emms-info-mp3--decode-duration filename (+ tag-size 10))))
+           (emms-info-native-mp3--decode-duration filename (+ tag-size 10))))
       (nconc tags (when playtime
                     (list (cons "playing-time" playtime)))))))
 
-(defun emms-info-mp3--decode-duration (filename offset)
+(defun emms-info-native-mp3--decode-duration (filename offset)
   "Decode or estimate stream duration for MP3 file FILENAME.
 Start looking for necessary headers from byte offset OFFSET.
 
@@ -578,7 +578,7 @@ Return the duration in secods, or nil in case of errors."
     (set-buffer-multibyte nil)
     (insert-file-contents-literally filename nil offset (+ offset 1024))
     (let* ((header
-            (emms-info-mp3--find-and-decode-frame-header))
+            (emms-info-native-mp3--find-and-decode-frame-header))
            (samples-per-frame
             (alist-get 'samples-per-frame header))
            (sample-rate
@@ -586,22 +586,22 @@ Return the duration in secods, or nil in case of errors."
            (bit-rate
             (alist-get 'bit-rate header))
            (frames
-            (or (emms-info-mp3--find-and-decode-xing-header)
-                (emms-info-mp3--find-and-decode-vbri-header))))
+            (or (emms-info-native-mp3--find-and-decode-xing-header)
+                (emms-info-native-mp3--find-and-decode-vbri-header))))
       (cond ((and frames samples-per-frame sample-rate)
              ;; The file has a usable VBR (Xing, Info or VBRI) header.
              (/ (* frames samples-per-frame) sample-rate))
             (bit-rate
              ;; The file does not have a usable VBR header, therefore
              ;; estimate the duration.
-             (emms-info-mp3--estimate-duration filename bit-rate))))))
+             (emms-info-native-mp3--estimate-duration filename bit-rate))))))
 
-(defun emms-info-mp3--find-and-decode-frame-header ()
+(defun emms-info-native-mp3--find-and-decode-frame-header ()
   "Find and decode MP3 audio frame header from the current buffer.
 Return the decoded header in an alist, or nil if a header cannot
 be found or decoded.
 
-See `emms-info-mp3--decode-frame-header' for details."
+See `emms-info-native-mp3--decode-frame-header' for details."
   (let (header)
     (goto-char (point-min))
     (ignore-errors
@@ -612,10 +612,10 @@ See `emms-info-mp3--decode-frame-header' for details."
                 (buffer-substring-no-properties (- (point) 1)
                                                 (+ (point) 3)))))
           (setq header
-                (emms-info-mp3--decode-frame-header bytes)))))
+                (emms-info-native-mp3--decode-frame-header bytes)))))
     header))
 
-(defun emms-info-mp3--decode-frame-header (header)
+(defun emms-info-native-mp3--decode-frame-header (header)
   "Decode 32-bit numeric HEADER data.
 Pack its elements to an alist and return the list.  Return nil if
 HEADER does not have MP3 sync bits set."
@@ -646,22 +646,22 @@ HEADER does not have MP3 sync bits set."
             (emms-extract-bits header 0 1))
            (version
             (alist-get version-bits
-                       emms-info-mp3--versions))
+                       emms-info-native-mp3--versions))
            (layer
             (alist-get layer-bits
-                       emms-info-mp3--layers))
+                       emms-info-native-mp3--layers))
            (channel-mode
             (alist-get channel-mode-bits
-                       emms-info-mp3--channel-modes))
+                       emms-info-native-mp3--channel-modes))
            (sample-rate
             (nth sample-rate-bits
                  (alist-get version
-                            emms-info-mp3--sample-rates)))
+                            emms-info-native-mp3--sample-rates)))
            (samples-per-frame
-            (emms-info-mp3--samples-per-frame
+            (emms-info-native-mp3--samples-per-frame
              version layer))
            (bit-rate
-            (emms-info-mp3--decode-bit-rate
+            (emms-info-native-mp3--decode-bit-rate
              version layer bit-rate-bits)))
       (list (cons 'version version)
             (cons 'layer layer)
@@ -677,32 +677,32 @@ HEADER does not have MP3 sync bits set."
             (cons 'emphasis emphasis-bits)
             (cons 'original original-bit)))))
 
-(defun emms-info-mp3--find-and-decode-xing-header ()
+(defun emms-info-native-mp3--find-and-decode-xing-header ()
   "Find and decode Xing VBR header from the current buffer.
 Return the number of frames in the stream, or nil if a header
 cannot be found or decoded."
   (goto-char (point-min))
   (when (re-search-forward "Xing\\|Info" (point-max) t)
     (let ((header
-           (bindat-unpack emms-info-mp3--xing-header-bindat-spec
+           (bindat-unpack emms-info-native-mp3--xing-header-bindat-spec
                           (buffer-string)
                           (1- (match-beginning 0)))))
       (when (memq 0 (bindat-get-field header 'flags))
         (bindat-get-field header 'frames)))))
 
-(defun emms-info-mp3--find-and-decode-vbri-header ()
+(defun emms-info-native-mp3--find-and-decode-vbri-header ()
   "Find and decode VBRI header from the current buffer.
 Return the number of frames in the stream, or nil if a header
 cannot be found or decoded."
   (goto-char (point-min))
   (when (re-search-forward "VBRI" (point-max) t)
     (let ((header
-           (bindat-unpack emms-info-mp3--vbri-header-bindat-spec
+           (bindat-unpack emms-info-native-mp3--vbri-header-bindat-spec
                           (buffer-string)
                           (1- (match-beginning 0)))))
       (bindat-get-field header 'frames))))
 
-(defun emms-info-mp3--estimate-duration (filename bitrate)
+(defun emms-info-native-mp3--estimate-duration (filename bitrate)
   "Estimate stream duration for FILENAME.
 Assume constant encoding bit rate of BITRATE kilobits per second.
 Return the estimated stream duration in seconds, or nil in case
@@ -712,45 +712,45 @@ of errors."
           (file-attributes (file-chase-links filename)))))
     (when bitrate (/ (* 8 size) (* 1000 bitrate)))))
 
-(defun emms-info-mp3--decode-bit-rate (version layer bits)
+(defun emms-info-native-mp3--decode-bit-rate (version layer bits)
   "Return the bit rate for MPEG VERSION/LAYER combination.
 BITS is the bitrate index from MP3 header."
   (cond ((eq version 'mpeg1)
          (cond ((eq layer 'layerI)
                 (nth bits
                      (alist-get 'mpeg1-layerI
-                                emms-info-mp3--bit-rates)))
+                                emms-info-native-mp3--bit-rates)))
                ((eq layer 'layerII)
                 (nth bits
                      (alist-get 'mpeg1-layerII
-                                emms-info-mp3--bit-rates)))
+                                emms-info-native-mp3--bit-rates)))
                ((eq layer 'layerIII)
                 (nth bits
                      (alist-get 'mpeg1-layerIII
-                                emms-info-mp3--bit-rates)))))
+                                emms-info-native-mp3--bit-rates)))))
         (t (cond ((eq layer 'layerI)
                   (nth bits
                        (alist-get 'mpeg2x-layerI
-                                  emms-info-mp3--bit-rates)))
+                                  emms-info-native-mp3--bit-rates)))
                  (t (nth bits
                          (alist-get 'mpeg2x-layerII-III
-                                    emms-info-mp3--bit-rates)))))))
+                                    emms-info-native-mp3--bit-rates)))))))
 
-(defun emms-info-mp3--samples-per-frame (version layer)
+(defun emms-info-native-mp3--samples-per-frame (version layer)
   "Return the samples per frame for MPEG VERSION/LAYER combination."
   (cond ((eq layer 'layerIII)
          (cond ((eq version 'mpeg1)
                 (alist-get 'layerIII-mpeg1
-                           emms-info-mp3--samples-per-frame))
+                           emms-info-native-mp3--samples-per-frame))
                (t (alist-get 'layerIII-mpeg2x
-                             emms-info-mp3--samples-per-frame))))
+                             emms-info-native-mp3--samples-per-frame))))
         ((eq layer 'layerII)
          (alist-get 'layerII
-                    emms-info-mp3--samples-per-frame))
+                    emms-info-native-mp3--samples-per-frame))
         ((eq layer 'layerI)
          (alist-get 'layerI
-                    emms-info-mp3--samples-per-frame))))
+                    emms-info-native-mp3--samples-per-frame))))
 
-(provide 'emms-info-mp3)
+(provide 'emms-info-native-mp3)
 
-;;; emms-info-mp3.el ends here
+;;; emms-info-native-mp3.el ends here
diff --git a/emms-info-ogg.el b/emms-info-native-ogg.el
similarity index 75%
rename from emms-info-ogg.el
rename to emms-info-native-ogg.el
index 393841228c..c2422702fc 100644
--- a/emms-info-ogg.el
+++ b/emms-info-native-ogg.el
@@ -1,4 +1,4 @@
-;;; emms-info-ogg.el --- EMMS info functions for Ogg files  -*- 
lexical-binding: t; -*-
+;;; emms-info-native-ogg.el --- EMMS info functions for Ogg files  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
@@ -32,42 +32,43 @@
 ;;
 ;; Vorbis code is based on xiph.org's Vorbis I specification,
 ;; available at https://xiph.org/vorbis/doc/Vorbis_I_spec.html.  See
-;; also emms-info-vorbis.el.
+;; also emms-info-native-vorbis.el.
 ;;
 ;; Opus code is based on RFC 7845; see
-;; https://tools.ietf.org/html/rfc7845.html and emms-info-opus.el.
+;; https://tools.ietf.org/html/rfc7845.html and
+;; emms-info-native-opus.el.
 
 ;;; Code:
 
-(require 'emms-info-opus)
-(require 'emms-info-vorbis)
+(require 'emms-info-native-opus)
+(require 'emms-info-native-vorbis)
 (require 'bindat)
 
-(defconst emms-info-ogg--page-size 65307
+(defconst emms-info-native-ogg--page-size 65307
   "Maximum size for a single Ogg container page.")
 
-(defconst emms-info-ogg--max-peek-size (* 2048 1024)
+(defconst emms-info-native-ogg--max-peek-size (* 2048 1024)
   "Maximum buffer size for metadata decoding.
-Functions in `emms-info-ogg' read certain amounts of data into a
+Functions in `emms-info-native-ogg' read certain amounts of data into a
 temporary buffer while decoding metadata.  This variable controls
 the maximum size of that buffer: if more than
-`emms-info-ogg--max-peek-size' bytes are needed, an error is
+`emms-info-native-ogg--max-peek-size' bytes are needed, an error is
 signaled.
 
 Technically metadata blocks can have almost arbitrary lengths,
 but in practice processing must be constrained to prevent memory
 exhaustion in case of garbled or malicious inputs.")
 
-(defconst emms-info-ogg--magic-pattern "OggS"
+(defconst emms-info-native-ogg--magic-pattern "OggS"
   "Ogg format magic capture pattern.")
 
-(defconst emms-info-ogg--page-bindat-spec
+(defconst emms-info-native-ogg--page-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (capture-pattern str 4)
-        (_ unit (unless (equal capture-pattern emms-info-ogg--magic-pattern)
+        (_ unit (unless (equal capture-pattern 
emms-info-native-ogg--magic-pattern)
                   (error "Ogg framing mismatch: expected `%s', got `%s'"
-                         emms-info-ogg--magic-pattern
+                         emms-info-native-ogg--magic-pattern
                          capture-pattern)))
         (stream-structure-version u8)
         (_ unit (unless (= stream-structure-version 0)
@@ -83,9 +84,9 @@ exhaustion in case of garbled or malicious inputs.")
         (payload str (seq-reduce #'+ segment-table 0)))
     ;; For Emacsen older than 28
     '((capture-pattern str 4)
-      (eval (unless (equal last emms-info-ogg--magic-pattern)
+      (eval (unless (equal last emms-info-native-ogg--magic-pattern)
               (error "Ogg framing mismatch: expected `%s', got `%s'"
-                     emms-info-ogg--magic-pattern
+                     emms-info-native-ogg--magic-pattern
                      last)))
       (stream-structure-version u8)
       (eval (unless (= last 0)
@@ -102,7 +103,7 @@ exhaustion in case of garbled or malicious inputs.")
       (payload str (eval (seq-reduce #'+ last 0)))))
   "Ogg page structure specification.")
 
-(defconst emms-info-ogg--crc-table
+(defconst emms-info-native-ogg--crc-table
   [#x00000000 #x04C11DB7 #x09823B6E #x0D4326D9 #x130476DC
    #x17C56B6B #x1A864DB2 #x1E475005 #x2608EDB8 #x22C9F00F
    #x2F8AD6D6 #x2B4BCB61 #x350C9B64 #x31CD86D3 #x3C8EA00A
@@ -157,7 +158,7 @@ exhaustion in case of garbled or malicious inputs.")
    #xB1F740B4]
   "Lookup table for calculating Ogg checksums.")
 
-(defun emms-info-ogg-decode-metadata (filename stream-type)
+(defun emms-info-native-ogg-decode-metadata (filename stream-type)
   "Read and decode metadata from Ogg file FILENAME.
 The file is assumed to contain a single stream of type
 STREAM-TYPE, which must either `vorbis' or `opus'.
@@ -165,17 +166,17 @@ STREAM-TYPE, which must either `vorbis' or `opus'.
 Return comments in a list of (FIELD . VALUE) cons cells.
 Additionally return stream duration in `playing-time' field.
 
-See `emms-info-vorbis--split-comment' for details."
+See `emms-info-native-vorbis--split-comment' for details."
   (let* ((packets
-          (emms-info-ogg--read-and-decode-packets filename 2))
+          (emms-info-native-ogg--read-and-decode-packets filename 2))
          (headers
-          (emms-info-ogg--decode-headers packets stream-type))
+          (emms-info-native-ogg--decode-headers packets stream-type))
          (user-comments
           (bindat-get-field headers 'comment-header 'user-comments))
          (comments
-          (emms-info-vorbis-extract-comments user-comments))
+          (emms-info-native-vorbis-extract-comments user-comments))
          (last-page
-          (emms-info-ogg--read-and-decode-last-page filename))
+          (emms-info-native-ogg--read-and-decode-last-page filename))
          (granule-pos
           (alist-get 'granule-position last-page))
          (sample-rate
@@ -193,16 +194,16 @@ See `emms-info-vorbis--split-comment' for details."
            (when playing-time
              (list (cons "playing-time" playing-time))))))
 
-(defun emms-info-ogg--read-and-decode-packets (filename packets)
+(defun emms-info-native-ogg--read-and-decode-packets (filename packets)
   "Read and decode PACKETS packets from Ogg file FILENAME.
 Read in data from the start of FILENAME, remove Ogg packet
 frames, and concatenate payloads until at least PACKETS number of
 packets have been decoded.  Return the decoded packets in a
 string, concatenated.
 
-Read data in `emms-info-ogg--page-size' chunks.  If more than
-`emms-info-ogg--max-peek-size' bytes of data would be read,
-signal an error.
+Read data in `emms-info-native-ogg--page-size' chunks.  If more
+than `emms-info-native-ogg--max-peek-size' bytes of data would be
+read, signal an error.
 
 Only elementary streams are supported, that is, FILENAME should
 contain only a single logical stream.  Note that this assumption
@@ -210,65 +211,65 @@ is not verified: with non-elementary streams packets from
 different streams will be mixed together without an error."
   (let ((num-packets 0) (offset 0) (stream (list)))
     (while (< num-packets packets)
-      (when (> offset emms-info-ogg--max-peek-size)
+      (when (> offset emms-info-native-ogg--max-peek-size)
         (error "Ogg payload is too large"))
-      (let ((page (emms-info-ogg--read-and-decode-page filename offset)))
+      (let ((page (emms-info-native-ogg--read-and-decode-page filename 
offset)))
         (setq num-packets (+ num-packets
-                             (emms-info-ogg--num-packets page)))
+                             (emms-info-native-ogg--num-packets page)))
         (setq offset (+ offset
                         (bindat-length
-                         emms-info-ogg--page-bindat-spec page)))
+                         emms-info-native-ogg--page-bindat-spec page)))
         (push (bindat-get-field page 'payload) stream)))
     (reverse (mapconcat #'nreverse stream nil))))
 
-(defun emms-info-ogg--read-and-decode-page (filename offset)
+(defun emms-info-native-ogg--read-and-decode-page (filename offset)
   "Read and decode a single Ogg page from FILENAME.
 Starting reading data from byte offset OFFSET.
 
-Return the plist from `emms-info-ogg--decode-page'."
+Return the plist from `emms-info-native-ogg--decode-page'."
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert-file-contents-literally
-     filename nil offset (+ offset emms-info-ogg--page-size))
-    (bindat-unpack emms-info-ogg--page-bindat-spec
+     filename nil offset (+ offset emms-info-native-ogg--page-size))
+    (bindat-unpack emms-info-native-ogg--page-bindat-spec
                    (buffer-string))))
 
-(defun emms-info-ogg--num-packets (page)
+(defun emms-info-native-ogg--num-packets (page)
   "Return the number of packets in Ogg page PAGE.
-PAGE must correspond to `emms-info-ogg--page-bindat-spec'."
+PAGE must correspond to `emms-info-native-ogg--page-bindat-spec'."
   ;; Every element that is less than 255 in the segment table
   ;; represents a packet boundary.
   (length (seq-filter (lambda (elt) (< elt 255))
                       (bindat-get-field page 'segment-table))))
 
-(defun emms-info-ogg--decode-headers (packets stream-type)
+(defun emms-info-native-ogg--decode-headers (packets stream-type)
   "Decode first two stream headers from PACKETS for STREAM-TYPE.
 STREAM-TYPE must be either `vorbis' or `opus'.
 
 Return a structure that corresponds to either
-`emms-info-opus--headers-bindat-spec' or
-`emms-info-vorbis--headers-bindat-spec'."
+`emms-info-native-opus--headers-bindat-spec' or
+`emms-info-native-vorbis--headers-bindat-spec'."
   (cond ((eq stream-type 'vorbis)
-         (bindat-unpack emms-info-vorbis--headers-bindat-spec
+         (bindat-unpack emms-info-native-vorbis--headers-bindat-spec
                         packets))
         ((eq stream-type 'opus)
-         (bindat-unpack emms-info-opus--headers-bindat-spec
+         (bindat-unpack emms-info-native-opus--headers-bindat-spec
                         packets))
         (t (error "Unknown stream type %s" stream-type))))
 
-(defun emms-info-ogg--read-and-decode-last-page (filename)
+(defun emms-info-native-ogg--read-and-decode-last-page (filename)
   "Read and decode the last Ogg page from FILENAME.
 Return the page in bindat type structure."
   (with-temp-buffer
     (let* ((length (file-attribute-size
                     (file-attributes
                      (file-truename filename))))
-           (begin (max 0 (- length emms-info-ogg--page-size))))
+           (begin (max 0 (- length emms-info-native-ogg--page-size))))
       (set-buffer-multibyte nil)
       (insert-file-contents-literally filename nil begin length)
-      (emms-info-ogg--decode-last-page))))
+      (emms-info-native-ogg--decode-last-page))))
 
-(defun emms-info-ogg--decode-last-page ()
+(defun emms-info-native-ogg--decode-last-page ()
   "Find and return the last valid Ogg page from the current buffer.
 Ensure page synchronization by verifying page checksum.
 
@@ -277,47 +278,47 @@ Ogg page in the buffer, return nil."
   (let (page)
     (goto-char (point-max))
     (while (and (not page)
-                (search-backward emms-info-ogg--magic-pattern nil t))
-      (setq page (emms-info-ogg--verify-page)))
+                (search-backward emms-info-native-ogg--magic-pattern nil t))
+      (setq page (emms-info-native-ogg--verify-page)))
     (when (and page
                (> (logand (alist-get 'header-type-flag page) #x04) 0))
       page)))
 
-(defun emms-info-ogg--verify-page ()
+(defun emms-info-native-ogg--verify-page ()
   "Verify Ogg page starting from point.
-Unpack page into `emms-info-ogg--page-bindat-spec' structure and
-calculate its checksum.  Return the page if the checksum is
-correct, or nil if the checksum does not match or the page is
-otherwise invalid."
+Unpack page into `emms-info-native-ogg--page-bindat-spec'
+structure and calculate its checksum.  Return the page if the
+checksum is correct, or nil if the checksum does not match or the
+page is otherwise invalid."
   (ignore-errors
     (let* ((offset (point))
            (page
-            (bindat-unpack emms-info-ogg--page-bindat-spec
+            (bindat-unpack emms-info-native-ogg--page-bindat-spec
                            (buffer-string)
                            (1- offset)))
            (num-bytes
-            (bindat-length emms-info-ogg--page-bindat-spec page))
+            (bindat-length emms-info-native-ogg--page-bindat-spec page))
            (buf
             (buffer-substring-no-properties offset
                                             (+ offset num-bytes)))
            (checksum
-            (emms-info-ogg--checksum (concat (substring buf 0 22)
+            (emms-info-native-ogg--checksum (concat (substring buf 0 22)
                                              [0 0 0 0]
                                              (substring buf 26)))))
       (when (= (alist-get 'page-checksum page) checksum) page))))
 
-(defun emms-info-ogg--checksum (bytes)
+(defun emms-info-native-ogg--checksum (bytes)
   "Calculate and return Ogg checksum for BYTES.
 See URL `https://xiph.org/vorbis/doc/framing.html' for details on
 checksum."
   (let ((crc 0))
     (dotimes (n (length bytes))
       (setq crc (logxor (logand (ash crc 8) #xffffffff)
-                        (aref emms-info-ogg--crc-table
+                        (aref emms-info-native-ogg--crc-table
                               (logxor (ash crc -24)
                                       (aref bytes n))))))
     crc))
 
-(provide 'emms-info-ogg)
+(provide 'emms-info-native-ogg)
 
-;;; emms-info-ogg.el ends here
+;;; emms-info-native-ogg.el ends here
diff --git a/emms-info-opus.el b/emms-info-native-opus.el
similarity index 61%
rename from emms-info-opus.el
rename to emms-info-native-opus.el
index 42415ee32d..edb7125b1e 100644
--- a/emms-info-opus.el
+++ b/emms-info-native-opus.el
@@ -1,4 +1,4 @@
-;;; emms-info-opus.el --- EMMS Opus info support  -*- lexical-binding: t; -*-
+;;; emms-info-native-opus.el --- EMMS Opus info support  -*- lexical-binding: 
t; -*-
 
 ;; Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
@@ -23,35 +23,36 @@
 
 ;;; Commentary:
 
-;; This file contains Opus-specific code for `emms-info-ogg' feature.
+;; This file contains Opus-specific code for `emms-info-native-ogg'
+;; feature.
 
-(require 'emms-info-vorbis)
+(require 'emms-info-native-vorbis)
 (require 'bindat)
 
-(defvar emms-info-opus--channel-count 0
+(defvar emms-info-native-opus--channel-count 0
   "Last decoded Opus channel count.")
 
-(defconst emms-info-opus--id-magic-pattern "OpusHead"
+(defconst emms-info-native-opus--id-magic-pattern "OpusHead"
   "Opus identification header magic pattern.")
 
-(defconst emms-info-opus--channel-mapping-bindat-spec
+(defconst emms-info-native-opus--channel-mapping-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (stream-count u8)
         (coupled-count u8)
-        (channel-mapping vec emms-info-opus--channel-count))
+        (channel-mapping vec emms-info-native-opus--channel-count))
   '((stream-count u8)
     (coupled-count u8)
-    (channel-mapping vec (eval emms-info-opus--channel-count))))
+    (channel-mapping vec (eval emms-info-native-opus--channel-count))))
   "Opus channel mapping table specification.")
 
-(defconst emms-info-opus--id-header-bindat-spec
+(defconst emms-info-native-opus--id-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (opus-head str 8)
-        (_ unit (unless (equal opus-head emms-info-opus--id-magic-pattern)
+        (_ unit (unless (equal opus-head 
emms-info-native-opus--id-magic-pattern)
                   (error "Opus framing mismatch: expected `%s', got `%s'"
-                         emms-info-opus--id-magic-pattern
+                         emms-info-native-opus--id-magic-pattern
                          opus-head)))
         (opus-version u8)
         (_ unit (unless (< opus-version 16)
@@ -63,80 +64,80 @@
         (output-gain uint 16 'le)
         (channel-mapping-family u8)
         (channel-mapping . (if (> channel-mapping-family 0)
-                               (type 
emms-info-opus--channel-mapping-bindat-spec)
+                               (type 
emms-info-native-opus--channel-mapping-bindat-spec)
                              (unit nil))))
     '((opus-head str 8)
-      (eval (unless (equal last emms-info-opus--id-magic-pattern)
+      (eval (unless (equal last emms-info-native-opus--id-magic-pattern)
               (error "Opus framing mismatch: expected `%s', got `%s'"
-                     emms-info-opus--id-magic-pattern
+                     emms-info-native-opus--id-magic-pattern
                      last)))
       (opus-version u8)
       (eval (unless (< last 16)
               (error "Opus version mismatch: expected < 16, got %s"
                      last)))
       (channel-count u8)
-      (eval (setq emms-info-opus--channel-count last))
+      (eval (setq emms-info-native-opus--channel-count last))
       (pre-skip u16r)
       (sample-rate u32r)
       (output-gain u16r)
       (channel-mapping-family u8)
       (union (channel-mapping-family)
              (0 nil)
-             (t (struct emms-info-opus--channel-mapping-bindat-spec)))))
+             (t (struct emms-info-native-opus--channel-mapping-bindat-spec)))))
   "Opus identification header specification.")
 
-(defconst emms-info-opus--tags-magic-pattern "OpusTags"
+(defconst emms-info-native-opus--tags-magic-pattern "OpusTags"
   "Opus comment header magic pattern.")
 
-(defconst emms-info-opus--comment-header-bindat-spec
+(defconst emms-info-native-opus--comment-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (opus-tags str 8)
-        (_ unit (unless (equal opus-tags emms-info-opus--tags-magic-pattern)
+        (_ unit (unless (equal opus-tags 
emms-info-native-opus--tags-magic-pattern)
                   (error "Opus framing mismatch: expected `%s', got `%s'"
-                         emms-info-opus--tags-magic-pattern
+                         emms-info-native-opus--tags-magic-pattern
                          opus-tags)))
         (vendor-length uint 32 'le)
-        (_ unit (when (> vendor-length emms-info-vorbis--max-vendor-length)
+        (_ unit (when (> vendor-length 
emms-info-native-vorbis--max-vendor-length)
                   (error "Opus vendor length %s is too long"
                          vendor-length)))
         (vendor-string str vendor-length)
         (user-comments-list-length uint 32 'le)
         (_ unit (when (> user-comments-list-length
-                         emms-info-vorbis--max-comments)
+                         emms-info-native-vorbis--max-comments)
                   (error "Opus user comment list length %s is too long"
                          user-comments-list-length)))
         (user-comments repeat user-comments-list-length
-                       type emms-info-vorbis--comment-field-bindat-spec))
+                       type 
emms-info-native-vorbis--comment-field-bindat-spec))
     '((opus-tags str 8)
-      (eval (unless (equal last emms-info-opus--tags-magic-pattern)
+      (eval (unless (equal last emms-info-native-opus--tags-magic-pattern)
               (error "Opus framing mismatch: expected `%s', got `%s'"
-                     emms-info-opus--tags-magic-pattern
+                     emms-info-native-opus--tags-magic-pattern
                      last)))
       (vendor-length u32r)
-      (eval (when (> last emms-info-vorbis--max-vendor-length)
+      (eval (when (> last emms-info-native-vorbis--max-vendor-length)
               (error "Opus vendor length %s is too long" last)))
       (vendor-string str (vendor-length))
       (user-comments-list-length u32r)
-      (eval (when (> last emms-info-vorbis--max-comments)
+      (eval (when (> last emms-info-native-vorbis--max-comments)
               (error "Opus user comment list length %s is too long"
                      last)))
       (user-comments repeat
                      (user-comments-list-length)
-                     (struct emms-info-vorbis--comment-field-bindat-spec))))
+                     (struct 
emms-info-native-vorbis--comment-field-bindat-spec))))
   "Opus comment header specification.")
 
-(defconst emms-info-opus--headers-bindat-spec
+(defconst emms-info-native-opus--headers-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
-        (identification-header type emms-info-opus--id-header-bindat-spec)
-        (comment-header type emms-info-opus--comment-header-bindat-spec))
-    '((identification-header struct emms-info-opus--id-header-bindat-spec)
-      (comment-header struct emms-info-opus--comment-header-bindat-spec)))
+        (identification-header type 
emms-info-native-opus--id-header-bindat-spec)
+        (comment-header type 
emms-info-native-opus--comment-header-bindat-spec))
+    '((identification-header struct 
emms-info-native-opus--id-header-bindat-spec)
+      (comment-header struct 
emms-info-native-opus--comment-header-bindat-spec)))
   "Specification for two first Opus header packets.
 They are always an identification header followed by a comment
 header.")
 
-(provide 'emms-info-opus)
+(provide 'emms-info-native-opus)
 
-;;; emms-info-opus.el ends here
+;;; emms-info-native-opus.el ends here
diff --git a/emms-info-spc.el b/emms-info-native-spc.el
similarity index 80%
rename from emms-info-spc.el
rename to emms-info-native-spc.el
index 104534de22..c71a35a558 100644
--- a/emms-info-spc.el
+++ b/emms-info-native-spc.el
@@ -1,4 +1,4 @@
-;;; emms-info-spc.el --- EMMS info functions for SPC files  -*- 
lexical-binding: t; -*-
+;;; emms-info-native-spc.el --- EMMS info functions for SPC files  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 2023  Free Software Foundation, Inc.
 
@@ -32,18 +32,18 @@
 
 (require 'bindat)
 
-(defconst emms-info-spc--id666-magic-pattern
+(defconst emms-info-native-spc--id666-magic-pattern
   "SNES-SPC700 Sound File Data v0.30"
   "id666 header magic pattern.")
 
-(defconst emms-info-spc--id666-header-bindat-spec
+(defconst emms-info-native-spc--id666-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (file-identifier str 33)
         (_ unit (unless (equal file-identifier
-                               emms-info-spc--id666-magic-pattern)
+                               emms-info-native-spc--id666-magic-pattern)
                   (error "id666 framing mismatch: expected `%s', got `%s'"
-                         emms-info-spc--id666-magic-pattern
+                         emms-info-native-spc--id666-magic-pattern
                          file-identifier)))
         (unused uint 16)
         (has-id666 u8)
@@ -64,9 +64,9 @@
         (fadeout-length vec 5)
         (artist strz 32))
   '((file-identifier str 33)
-    (eval (unless (equal last emms-info-spc--id666-magic-pattern)
+    (eval (unless (equal last emms-info-native-spc--id666-magic-pattern)
             (error "id666 framing mismatch: expected `%s', got `%s'"
-                   emms-info-spc--id666-magic-pattern
+                   emms-info-native-spc--id666-magic-pattern
                    last)))
     (unused u16)
     (has-id666 u8)
@@ -93,20 +93,20 @@ Sources:
 - URL `https://ocremix.org/info/SPC_Format_Specification'
 - URL `https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html'")
 
-(defun emms-info-spc--decode-id666-header (filename)
+(defun emms-info-native-spc--decode-id666-header (filename)
   "Read and decode id666 header from FILENAME."
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert-file-contents-literally filename nil 0 210)
-    (bindat-unpack emms-info-spc--id666-header-bindat-spec
+    (bindat-unpack emms-info-native-spc--id666-header-bindat-spec
                    (buffer-string))))
 
-(defun emms-info-spc-decode-id666 (filename)
+(defun emms-info-native-spc-decode-id666 (filename)
   "Read and decode id666 metadata from FILENAME.
 Return metadata in a list of (FIELD . VALUE) cons cells, or nil
 in case of errors or if there were no known fields in FILENAME."
   (condition-case nil
-      (let ((header (emms-info-spc--decode-id666-header filename)))
+      (let ((header (emms-info-native-spc--decode-id666-header filename)))
        (when (= 26 (bindat-get-field header 'has-id666))
          (list
           (cons 'info-title (bindat-get-field header 'song-title))
@@ -116,6 +116,6 @@ in case of errors or if there were no known fields in 
FILENAME."
           (cons 'info-note (bindat-get-field header 'comment)))))
     (error nil)))
 
-(provide 'emms-info-spc)
+(provide 'emms-info-native-spc)
 
-;;; emms-info-spc.el ends here
+;;; emms-info-native-spc.el ends here
diff --git a/emms-info-vorbis.el b/emms-info-native-vorbis.el
similarity index 73%
rename from emms-info-vorbis.el
rename to emms-info-native-vorbis.el
index 97ac4e6898..fc054611ae 100644
--- a/emms-info-vorbis.el
+++ b/emms-info-native-vorbis.el
@@ -1,4 +1,4 @@
-;;; emms-info-vorbis.el --- EMMS Vorbis info support  -*- lexical-binding: t; 
-*-
+;;; emms-info-native-vorbis.el --- EMMS Vorbis info support  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 2020-2023 Free Software Foundation, Inc.
 
@@ -23,13 +23,13 @@
 
 ;;; Commentary:
 
-;; This file contains Vorbis-specific code for `emms-info-ogg'.
+;; This file contains Vorbis-specific code for `emms-info-native-ogg'.
 
 ;;; Code:
 
 (require 'bindat)
 
-(defconst emms-info-vorbis--max-comments 1024
+(defconst emms-info-native-vorbis--max-comments 1024
   "Maximum number of Vorbis comment fields in a stream.
 Technically a single Vorbis stream may have up to 2^32 comments,
 but in practice processing must be constrained to prevent memory
@@ -38,7 +38,7 @@ exhaustion in case of garbled or malicious inputs.
 This limit is used with Opus and FLAC streams as well, since
 their comments have almost the same format as Vorbis.")
 
-(defconst emms-info-vorbis--max-comment-size (* 64 1024)
+(defconst emms-info-native-vorbis--max-comment-size (* 64 1024)
   "Maximum length for a single Vorbis comment field.
 Technically a single Vorbis comment may have a length up to 2^32
 bytes, but in practice processing must be constrained to prevent
@@ -47,7 +47,7 @@ memory exhaustion in case of garbled or malicious inputs.
 This limit is used with Opus and FLAC streams as well, since
 their comments have almost the same format as Vorbis.")
 
-(defconst emms-info-vorbis--max-vendor-length 1024
+(defconst emms-info-native-vorbis--max-vendor-length 1024
   "Maximum length of Vorbis vendor string.
 Technically a vendor string can be up to 2^32 bytes long, but in
 practice processing must be constrained to prevent memory
@@ -56,7 +56,7 @@ exhaustion in case of garbled or malicious inputs.
 This limit is used with Opus and FLAC streams as well, since
 their comments have almost the same format as Vorbis.")
 
-(defconst emms-info-vorbis--accepted-fields
+(defconst emms-info-native-vorbis--accepted-fields
   '("album"
     "albumartist"
     "albumartistsort"
@@ -78,10 +78,10 @@ their comments have almost the same format as Vorbis.")
     "year")
   "EMMS info fields that are extracted from Vorbis comments.")
 
-(defconst emms-info-vorbis--header-magic-pattern "vorbis"
+(defconst emms-info-native-vorbis--header-magic-pattern "vorbis"
   "Header packet magic pattern.")
 
-(defconst emms-info-vorbis--id-header-bindat-spec
+(defconst emms-info-native-vorbis--id-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (packet-type u8)
@@ -89,9 +89,9 @@ their comments have almost the same format as Vorbis.")
                   (error "Vorbis header type mismatch: expected 1, got %s"
                          packet-type)))
         (vorbis str 6)
-        (_ unit (unless (equal vorbis emms-info-vorbis--header-magic-pattern)
+        (_ unit (unless (equal vorbis 
emms-info-native-vorbis--header-magic-pattern)
                   (error "Vorbis framing mismatch: expected `%s', got `%s'"
-                         emms-info-vorbis--header-magic-pattern
+                         emms-info-native-vorbis--header-magic-pattern
                          vorbis)))
         (vorbis-version uint 32 'le)
         (_ unit (unless (= vorbis-version 0)
@@ -112,9 +112,9 @@ their comments have almost the same format as Vorbis.")
               (error "Vorbis header type mismatch: expected 1, got %s"
                      last)))
       (vorbis str 6)
-      (eval (unless (equal last emms-info-vorbis--header-magic-pattern)
+      (eval (unless (equal last emms-info-native-vorbis--header-magic-pattern)
               (error "Vorbis framing mismatch: expected `%s', got `%s'"
-                     emms-info-vorbis--header-magic-pattern
+                     emms-info-native-vorbis--header-magic-pattern
                      last)))
       (vorbis-version u32r)
       (eval (unless (= last 0)
@@ -132,21 +132,21 @@ their comments have almost the same format as Vorbis.")
                    last))))
   "Vorbis identification header specification.")
 
-(defconst emms-info-vorbis--comment-field-bindat-spec
+(defconst emms-info-native-vorbis--comment-field-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (length uint 32 'le)
-        (_ unit (when (> length emms-info-vorbis--max-comment-size)
+        (_ unit (when (> length emms-info-native-vorbis--max-comment-size)
                   (error "Vorbis comment length %s is too long"
                          length)))
         (user-comment str length))
     '((length u32r)
-      (eval (when (> last emms-info-vorbis--max-comment-size)
+      (eval (when (> last emms-info-native-vorbis--max-comment-size)
               (error "Vorbis comment length %s is too long" last)))
       (user-comment str (length))))
   "Vorbis comment field specification.")
 
-(defconst emms-info-vorbis--comment-header-bindat-spec
+(defconst emms-info-native-vorbis--comment-header-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
         (packet-type u8)
@@ -154,21 +154,21 @@ their comments have almost the same format as Vorbis.")
                   (error "Vorbis header type mismatch: expected 3, got %s"
                          packet-type)))
         (vorbis str 6)
-        (_ unit (unless (equal vorbis emms-info-vorbis--header-magic-pattern)
+        (_ unit (unless (equal vorbis 
emms-info-native-vorbis--header-magic-pattern)
                   (error "Vorbis framing mismatch: expected `%s', got `%s'"
-                         emms-info-vorbis--header-magic-pattern
+                         emms-info-native-vorbis--header-magic-pattern
                          vorbis)))
         (vendor-length uint 32 'le)
-        (_ unit (when (> vendor-length emms-info-vorbis--max-vendor-length)
+        (_ unit (when (> vendor-length 
emms-info-native-vorbis--max-vendor-length)
                   (error "Vorbis vendor length %s is too long"
                          vendor-length)))
         (vendor-string str vendor-length)
         (user-comments-list-length uint 32 'le)
-        (_ unit (when (> user-comments-list-length 
emms-info-vorbis--max-comments)
+        (_ unit (when (> user-comments-list-length 
emms-info-native-vorbis--max-comments)
                   (error "Vorbis user comment list length %s is too long"
                          user-comments-list-length)))
         (user-comments repeat user-comments-list-length
-                       type emms-info-vorbis--comment-field-bindat-spec)
+                       type emms-info-native-vorbis--comment-field-bindat-spec)
         (framing-bit u8)
         (_ unit (unless (= framing-bit 1)
                   (error "Vorbis framing bit mismatch: expected 1, got %s"
@@ -178,56 +178,56 @@ their comments have almost the same format as Vorbis.")
               (error "Vorbis header type mismatch: expected 3, got %s"
                      last)))
       (vorbis str 6)
-      (eval (unless (equal last emms-info-vorbis--header-magic-pattern)
+      (eval (unless (equal last emms-info-native-vorbis--header-magic-pattern)
               (error "Vorbis framing mismatch: expected `%s', got `%s'"
-                     emms-info-vorbis--header-magic-pattern
+                     emms-info-native-vorbis--header-magic-pattern
                      last)))
       (vendor-length u32r)
-      (eval (when (> last emms-info-vorbis--max-vendor-length)
+      (eval (when (> last emms-info-native-vorbis--max-vendor-length)
               (error "Vorbis vendor length %s is too long" last)))
       (vendor-string str (vendor-length))
       (user-comments-list-length u32r)
-      (eval (when (> last emms-info-vorbis--max-comments)
+      (eval (when (> last emms-info-native-vorbis--max-comments)
               (error "Vorbis user comment list length %s is too long"
                      last)))
       (user-comments repeat
                      (user-comments-list-length)
-                     (struct emms-info-vorbis--comment-field-bindat-spec))
+                     (struct 
emms-info-native-vorbis--comment-field-bindat-spec))
       (framing-bit u8)
       (eval (unless (= last 1))
             (error "Vorbis framing bit mismatch: expected 1, got %s"
                    last))))
   "Vorbis comment header specification.")
 
-(defconst emms-info-vorbis--headers-bindat-spec
+(defconst emms-info-native-vorbis--headers-bindat-spec
   (if (eval-when-compile (fboundp 'bindat-type))
       (bindat-type
-        (_ struct (identification-header type 
emms-info-vorbis--id-header-bindat-spec)
-                  (comment-header type 
emms-info-vorbis--comment-header-bindat-spec)))
-    '((identification-header struct emms-info-vorbis--id-header-bindat-spec)
-      (comment-header struct emms-info-vorbis--comment-header-bindat-spec)))
+        (_ struct (identification-header type 
emms-info-native-vorbis--id-header-bindat-spec)
+                  (comment-header type 
emms-info-native-vorbis--comment-header-bindat-spec)))
+    '((identification-header struct 
emms-info-native-vorbis--id-header-bindat-spec)
+      (comment-header struct 
emms-info-native-vorbis--comment-header-bindat-spec)))
   "Specification for first two Vorbis header packets.
 They are always an identification header followed by a comment
 header.")
 
-(defun emms-info-vorbis-extract-comments (user-comments)
+(defun emms-info-native-vorbis-extract-comments (user-comments)
   "Return a decoded list of comments from USER-COMMENTS.
 USER-COMMENTS should be a list of Vorbis comments according to
 `user-comments' field in
-`emms-info-vorbis--comment-header-bindat-spec'.
+`emms-info-native-vorbis--comment-header-bindat-spec'.
 
 Return comments in a list of (FIELD . VALUE) cons cells.  Only
-FIELDs that are listed in `emms-info-vorbis--accepted-fields' are
+FIELDs that are listed in `emms-info-native-vorbis--accepted-fields' are
 returned."
   (let (comments)
     (dolist (user-comment user-comments)
       (let* ((comment (alist-get 'user-comment user-comment))
-             (pair (emms-info-vorbis--split-comment comment)))
-        (when (member (car pair) emms-info-vorbis--accepted-fields)
+             (pair (emms-info-native-vorbis--split-comment comment)))
+        (when (member (car pair) emms-info-native-vorbis--accepted-fields)
           (push pair comments))))
     comments))
 
-(defun emms-info-vorbis--split-comment (comment)
+(defun emms-info-native-vorbis--split-comment (comment)
   "Split Vorbis COMMENT to a field-value pair.
 Vorbis comments are of form `FIELD=VALUE'.  FIELD is a
 case-insensitive field name with a restricted set of ASCII
@@ -241,6 +241,6 @@ lower case and VALUE is the decoded value."
       (cons (downcase (match-string 1 comment-string))
             (match-string 2 comment-string)))))
 
-(provide 'emms-info-vorbis)
+(provide 'emms-info-native-vorbis)
 
-;;; emms-info-vorbis.el ends here
+;;; emms-info-native-vorbis.el ends here
diff --git a/emms-info-native.el b/emms-info-native.el
index 605c4f8094..5336a24ffe 100644
--- a/emms-info-native.el
+++ b/emms-info-native.el
@@ -25,8 +25,8 @@
 
 ;; This file provides a native emms-info-method for EMMS.  Here
 ;; "native" means a pure Emacs Lisp implementation instead of one
-;; relying on external tools or libraries like `emms-info-ogginfo' or
-;; `emms-info-libtag'.
+;; relying on external tools or libraries like
+;; `emms-info-native-ogginfo' or `emms-info-libtag'.
 ;;
 ;; To use this method, add `emms-info-native' to
 ;; `emms-info-functions'.
@@ -56,10 +56,10 @@
 ;;; Code:
 
 (require 'emms-info)
-(require 'emms-info-flac)
-(require 'emms-info-ogg)
-(require 'emms-info-mp3)
-(require 'emms-info-spc)
+(require 'emms-info-native-flac)
+(require 'emms-info-native-ogg)
+(require 'emms-info-native-mp3)
+(require 'emms-info-native-spc)
 
 (defun emms-info-native (track)
   "Set info fields for TRACK.
@@ -85,13 +85,13 @@ info field and VALUE is the corresponding info value.  Both 
are
 strings."
   (let ((stream-type (emms-info-native--find-stream-type filename)))
     (cond ((or (eq stream-type 'vorbis) (eq stream-type 'opus))
-           (emms-info-ogg-decode-metadata filename stream-type))
+           (emms-info-native-ogg-decode-metadata filename stream-type))
           ((eq stream-type 'flac)
-           (emms-info-flac-decode-metadata filename))
+           (emms-info-native-flac-decode-metadata filename))
           ((eq stream-type 'mp3)
-           (emms-info-mp3-decode-metadata filename))
+           (emms-info-native-mp3-decode-metadata filename))
          ((eq stream-type 'spc)
-          (emms-info-spc-decode-id666 filename))
+          (emms-info-native-spc-decode-id666 filename))
           (t nil))))
 
 (defun emms-info-native--find-stream-type (filename)
diff --git a/test/emms-info-flac-tests.el b/test/emms-info-native-flac-tests.el
similarity index 80%
rename from test/emms-info-flac-tests.el
rename to test/emms-info-native-flac-tests.el
index e2af51cf21..8cac890fba 100644
--- a/test/emms-info-flac-tests.el
+++ b/test/emms-info-native-flac-tests.el
@@ -1,4 +1,4 @@
-;;; emms-info-flac-tests.el --- Test suite for emms-info-flac  -*- 
lexical-binding: t; -*-
+;;; emms-info-native-flac-tests.el --- Test suite for emms-info-native-flac  
-*- lexical-binding: t; -*-
 
 ;; Copyright (C) 2023 Free Software Foundation, Inc.
 
@@ -23,14 +23,14 @@
 
 ;;; Code:
 
-(require 'emms-info-flac)
+(require 'emms-info-native-flac)
 (require 'ert)
 
 (defmacro emms-flac-test-make-data-func (name bytes)
   "Macro for defining test data generator.
 This macro defines a suitable function with NAME that outputs
 BYTES after FLAC signature.  The function NAME can then be passed
-for `emms-info-flac--decode-meta-blocks'."
+for `emms-info-native-flac--decode-meta-blocks'."
   `(defun ,name (offset end)
      (let ((bytes (seq-concatenate 'vector [102 76 97 67] ,bytes)))
        (erase-buffer)
@@ -41,19 +41,17 @@ for `emms-info-flac--decode-meta-blocks'."
 (emms-flac-test-make-data-func emms-test-valid-flac-block [0 0 0 8 10 11 12 13 
14 15 16 17 132 0 0 4 1 2 3 4])
 
 (ert-deftest emms-flac-test-meta-blocks ()
-  (should-error (emms-info-flac--decode-meta-blocks
+  (should-error (emms-info-native-flac--decode-meta-blocks
                  #'emms-test-invalid-flac-block-length))
-  (should-error (emms-info-flac--decode-meta-blocks
+  (should-error (emms-info-native-flac--decode-meta-blocks
                  #'emms-test-invalid-flac-block-type))
-  (should (equal (emms-info-flac--decode-meta-blocks
+  (should (equal (emms-info-native-flac--decode-meta-blocks
                   #'emms-test-valid-flac-block)
                  (list (unibyte-string 1 2 3 4)
                        (unibyte-string 10 11 12 13 14 15 16 17)))))
 
 (ert-deftest emms-flac-test-decode-duration ()
   ;; The corresponding sample metadata bytes are [10 196 66 240 1 8 36 0].
-  (should (= (emms-info-flac--decode-duration 775818634391462912) 392)))
+  (should (= (emms-info-native-flac--decode-duration 775818634391462912) 392)))
 
-(provide 'emms-info-flac-tests)
-
-;;; emms-info-flac-tests.el ends here
+;;; emms-info-native-flac-tests.el ends here
diff --git a/test/emms-info-mp3-tests.el b/test/emms-info-native-mp3-tests.el
similarity index 66%
rename from test/emms-info-mp3-tests.el
rename to test/emms-info-native-mp3-tests.el
index af5cf54b9a..4c6d44e428 100644
--- a/test/emms-info-mp3-tests.el
+++ b/test/emms-info-native-mp3-tests.el
@@ -1,4 +1,4 @@
-;;; emms-info-mp3-tests.el --- Test suite for emms-info-mp3  -*- 
lexical-binding: t; -*-
+;;; emms-info-native-mp3-tests.el --- Test suite for emms-info-native-mp3  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 2023 Free Software Foundation, Inc.
 
@@ -23,52 +23,52 @@
 
 ;;; Code:
 
-(require 'emms-info-mp3)
+(require 'emms-info-native-mp3)
 (require 'ert)
 
 (ert-deftest emms-id3v2-test-valid-frame-id-p ()
-  (let ((emms-info-id3v2--version 2))
-    (should (emms-info-id3v2--valid-frame-id-p "A1B"))
-    (should (not (emms-info-id3v2--valid-frame-id-p "~B1")))
-    (should (not (emms-info-id3v2--valid-frame-id-p "XX")))
-    (should (not (emms-info-id3v2--valid-frame-id-p "XXXX"))))
-  (let ((emms-info-id3v2--version 3))
-    (should (emms-info-id3v2--valid-frame-id-p "ABC9"))
-    (should (not (emms-info-id3v2--valid-frame-id-p "~BCD")))
-    (should (not (emms-info-id3v2--valid-frame-id-p "XXX")))
-    (should (not (emms-info-id3v2--valid-frame-id-p "XXXXX")))))
+  (let ((emms-info-native-id3v2--version 2))
+    (should (emms-info-native-id3v2--valid-frame-id-p "A1B"))
+    (should (not (emms-info-native-id3v2--valid-frame-id-p "~B1")))
+    (should (not (emms-info-native-id3v2--valid-frame-id-p "XX")))
+    (should (not (emms-info-native-id3v2--valid-frame-id-p "XXXX"))))
+  (let ((emms-info-native-id3v2--version 3))
+    (should (emms-info-native-id3v2--valid-frame-id-p "ABC9"))
+    (should (not (emms-info-native-id3v2--valid-frame-id-p "~BCD")))
+    (should (not (emms-info-native-id3v2--valid-frame-id-p "XXX")))
+    (should (not (emms-info-native-id3v2--valid-frame-id-p "XXXXX")))))
 
 (ert-deftest emms-id3v2-test-checked-size ()
-  (should (= (emms-info-id3v2--checked-size 'tag [0 0 2 1]) 257))
-  (should (= (emms-info-id3v2--checked-size 'tag [1 1 1 1]) 2113665))
-  (should (= (emms-info-id3v2--checked-size 'tag [#xff #xff #xff #xff])
+  (should (= (emms-info-native-id3v2--checked-size 'tag [0 0 2 1]) 257))
+  (should (= (emms-info-native-id3v2--checked-size 'tag [1 1 1 1]) 2113665))
+  (should (= (emms-info-native-id3v2--checked-size 'tag [#xff #xff #xff #xff])
              (1- (* 256 1024 1024))))
-  (should (= (emms-info-id3v2--checked-size 'tag [#x7f #x7f #x7f #x7f])
+  (should (= (emms-info-native-id3v2--checked-size 'tag [#x7f #x7f #x7f #x7f])
              (1- (* 256 1024 1024))))
-  (should (= (emms-info-id3v2--checked-size 'tag [#x12 #x34 #x56 #x78])
+  (should (= (emms-info-native-id3v2--checked-size 'tag [#x12 #x34 #x56 #x78])
              38611832))
-  (let ((emms-info-id3v2--version 4))
-    (should (= (emms-info-id3v2--checked-size 'frame [#xff #xff #xff #xff])
+  (let ((emms-info-native-id3v2--version 4))
+    (should (= (emms-info-native-id3v2--checked-size 'frame [#xff #xff #xff 
#xff])
                (1- (* 256 1024 1024)))))
-  (let ((emms-info-id3v2--version 3))
-    (should (= (emms-info-id3v2--checked-size 'frame [#xff #xff #xff #xff])
+  (let ((emms-info-native-id3v2--version 3))
+    (should (= (emms-info-native-id3v2--checked-size 'frame [#xff #xff #xff 
#xff])
                (1- (* 4 1024 1024 1024))))))
 
 (ert-deftest emms-id3v2-test-decode-size ()
-  (should (= (emms-info-id3v2--decode-size [01 01 01 01] nil)
+  (should (= (emms-info-native-id3v2--decode-size [01 01 01 01] nil)
              16843009))
-  (should (= (emms-info-id3v2--decode-size [01 01 01 01] t)
+  (should (= (emms-info-native-id3v2--decode-size [01 01 01 01] t)
              2113665))
-  (should (= (emms-info-id3v2--decode-size [00 00 02 01] nil)
+  (should (= (emms-info-native-id3v2--decode-size [00 00 02 01] nil)
              513))
-  (should (= (emms-info-id3v2--decode-size [00 00 02 01] t)
+  (should (= (emms-info-native-id3v2--decode-size [00 00 02 01] t)
              257)))
 
 (ert-deftest emms-mp3-test-find-and-decode-frame-header ()
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert (concat [#x00 #x00 #x00 #x00 #x00 #x00 #x00 #xff #xfb #xb0 #x04 
#x00 #x00 #x00 #x00 #x00 #x69 #x06 #x00 #x00 #x00 #x00 #x00 #x0d #x20 #xc0 #x00 
#x00 #x00 #x00 #x01 #xa4 #x1c #x00 #x00 #x00 #x00 #x00 #x34 #x83 #x80 #x00 #x00 
#x4c #x41 #x4d #x45 #x33 #x2e #x39 #x31 #x55 #x55]))
-    (should (equal (emms-info-mp3--find-and-decode-frame-header)
+    (should (equal (emms-info-native-mp3--find-and-decode-frame-header)
                    '((version . mpeg1)
                      (layer . layerIII)
                      (crc . 1)
@@ -87,18 +87,18 @@
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert (concat [255 234 144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 88 105 110 103 0 0 0 15 0 0 33 89 0 80 29 121 0 3 6 8 11 14 
15 18 21 23 26 29 31 34 37 39 42 45 47 50 53 55 57 60 62 65 68 70 73 76 78 81 
84 86 89 92 94 97 100 101 104 107 109 112 115 117 120 122 123 125 127 130 133 
135 138 141 143 146 149 151 154 157 159 162 165 167 170 173 174 177 180 182 185 
188 190 193 196 198 201 204 206 209 212 214 217 220 222 225 228 230 233 236 238 
241 244 246 249 2 [...]
-    (should (= (emms-info-mp3--find-and-decode-xing-header) 8537))))
+    (should (= (emms-info-native-mp3--find-and-decode-xing-header) 8537))))
 
 (ert-deftest emms-mp3-test-find-decode-xing-header-2 ()
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert (concat [255 251 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 73 110 102 111 0 0 0 15 0 0 35 216 0 58 134 9 0 2 5 8 10 13 
16 18 20 23 25 28 31 33 36 38 41 43 46 49 51 54 56 58 61 64 66 69 72 74 76 79 
82 84 87 90 91 94 97 99 102 105 108 109 112 115 117 120 123 125 128 130 133 135 
138 141 143 146 148 150 153 156 158 161 164 166 168 171 174 176 179 182 183 186 
189 191 194 197 199 201 204 207 209 212 215 217 219 222 224 227 230 233 235 237 
240 242 245 248  [...]
-    (should (= (emms-info-mp3--find-and-decode-xing-header) 9176))))
+    (should (= (emms-info-native-mp3--find-and-decode-xing-header) 9176))))
 
 (ert-deftest emms-mp3-test-find-and-decode-vbri-header ()
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert (concat [255 251 161 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 86 66 82 73 0 1 13 177 0 100 0 98 219 145 0 0 33 58 0 132 0 
1 0 2 0 64 152 177 189 168 187 54 186 206 187 55 186 207 186 103 187 55 188 215 
187 159 186 207 185 44 187 53 187 56 188 8 187 159 185 149 190 224 188 8 185 
250 186 99 184 90 182]))
-    (should (= (emms-info-mp3--find-and-decode-vbri-header) 8506))))
+    (should (= (emms-info-native-mp3--find-and-decode-vbri-header) 8506))))
 
-;;; emms-info-mp3-tests.el ends here
+;;; emms-info-native-mp3-tests.el ends here
diff --git a/test/emms-info-ogg-tests.el b/test/emms-info-native-ogg-tests.el
similarity index 92%
rename from test/emms-info-ogg-tests.el
rename to test/emms-info-native-ogg-tests.el
index d109b28c3e..8151e3ee8d 100644
--- a/test/emms-info-ogg-tests.el
+++ b/test/emms-info-native-ogg-tests.el
@@ -23,14 +23,14 @@
 
 ;;; Code:
 
-(require 'emms-info-ogg)
+(require 'emms-info-native-ogg)
 (require 'ert)
 
 (ert-deftest emms-ogg-test-decode-page ()
   (let* ((bytes (unibyte-string 79 103 103 83 0 2 0 0 0 0 0 0 0 0 134 209 158 
23 0 0 0 0 53 82 251 136 1 30 1 118 111 114 98 105 115 0 0 0 0 1 68 172 0 0 0 0 
0 0 128 56 1 0 0 0 0 0 184 1))
-         (page (bindat-unpack emms-info-ogg--page-bindat-spec bytes)))
-    (should (= (emms-info-ogg--num-packets page) 1))
-    (should (= (bindat-length emms-info-ogg--page-bindat-spec page) 58))
+         (page (bindat-unpack emms-info-native-ogg--page-bindat-spec bytes)))
+    (should (= (emms-info-native-ogg--num-packets page) 1))
+    (should (= (bindat-length emms-info-native-ogg--page-bindat-spec page) 58))
     (should (equal (bindat-get-field page 'payload)
                    (unibyte-string 1 118 111 114 98 105 115 0 0 0 0 1 68 172 0 
0 0 0 0 0 128 56 1 0 0 0 0 0 184 1)))))
 
@@ -39,7 +39,7 @@
   (let ((bytes (unibyte-string 1 118 111 114 98 105 115 0 0 0 0 1 68 172 0 0 0 
0 0 0 128 56 1 0 0 0 0 0 184 1 3 118 111 114 98 105 115 52 0 0 0 88 105 112 104 
46 79 114 103 32 108 105 98 86 111 114 98 105 115 32 73 32 50 48 50 48 48 55 48 
52 32 40 82 101 100 117 99 105 110 103 32 69 110 118 105 114 111 110 109 101 
110 116 41 2 0 0 0 7 0 0 0 102 111 111 61 98 97 114 27 0 0 0 75 101 121 61 206 
159 225 189 144 207 135 225 189 182 32 206 164 206 177 225 189 144 207 132 225 
189 176 1)))
     (should
      (emms-equal-lists
-      (emms-info-ogg--decode-headers bytes 'vorbis)
+      (emms-info-native-ogg--decode-headers bytes 'vorbis)
       '((identification-header
          (packet-type . 1)
          (vorbis . "vorbis")
@@ -68,7 +68,7 @@
   "Test `emms-info-ogg--decode-headers' with Opus data."
   (let ((bytes (unibyte-string 79 112 117 115 72 101 97 100 1 1 56 1 68 172 0 
0 0 0 0 79 112 117 115 84 97 103 115 13 0 0 0 108 105 98 111 112 117 115 32 49 
46 51 46 49 3 0 0 0 38 0 0 0 69 78 67 79 68 69 82 61 111 112 117 115 101 110 99 
32 102 114 111 109 32 111 112 117 115 45 116 111 111 108 115 32 48 46 49 46 49 
48 7 0 0 0 102 111 111 61 98 97 114 27 0 0 0 75 101 121 61 206 159 225 189 144 
207 135 225 189 182 32 206 164 206 177 225 189 144 207 132 225 189 176)))
     (emms-equal-lists
-     (emms-info-ogg--decode-headers bytes 'opus)
+     (emms-info-native-ogg--decode-headers bytes 'opus)
      '((identification-header
         (opus-head . "OpusHead")
         (opus-version . 1)
@@ -97,7 +97,7 @@ This is a helper function for 
`emms-ogg-test-decode-last-page'."
   (with-temp-buffer
     (set-buffer-multibyte nil)
     (insert (concat bytes))
-    (emms-info-ogg--decode-last-page)))
+    (emms-info-native-ogg--decode-last-page)))
 
 (ert-deftest emms-ogg-test-decode-last-page()
   (let ((valid [#x01 #x02 #x03 #x04 #x4f #x67 #x67 #x53 #x00 #x04 #x00 #x24 
#x08 #x01 #x00 #x00 #x00 #x00 #x9c #x39 #x6e #x47 #x40 #x08 #x00 #x00 #x19 #x4e 
#xac #xa3 #x01 #x0a #x4f #x67 #x67 #x53 #x31 #x32 #x33 #x34 #x35 #x36])
@@ -124,8 +124,6 @@ This is a helper function for 
`emms-ogg-test-decode-last-page'."
 
 (ert-deftest emms-ogg-test-calculate-checksum ()
   (let ((bytes [#x01 #x02 #x03 #x04 #x4f #x67 #x67 #x53 #x00 #x04 #x00 #x24 
#x08 #x01 #x00 #x00 #x00 #x00 #x9c #x39 #x6e #x47 #x40 #x08 #x00 #x00 #x19 #x4e 
#xac #xa3 #x01 #x0a #x4f #x67 #x67 #x53 #x31 #x32 #x33 #x34 #x35 #x36]))
-    (should (= (emms-info-ogg--checksum bytes) 445885580))))
+    (should (= (emms-info-native-ogg--checksum bytes) 445885580))))
 
-(provide 'emms-info-ogg-tests)
-
-;;; emms-info-ogg-tests.el ends here
+;;; emms-info-native-ogg-tests.el ends here
diff --git a/test/emms-info-vorbis-tests.el 
b/test/emms-info-native-vorbis-tests.el
similarity index 73%
rename from test/emms-info-vorbis-tests.el
rename to test/emms-info-native-vorbis-tests.el
index 019a2657f5..680b44c620 100644
--- a/test/emms-info-vorbis-tests.el
+++ b/test/emms-info-native-vorbis-tests.el
@@ -1,4 +1,4 @@
-;;; emms-info-vorbis-tests.el --- Test suite for emms-info-vorbis  -*- 
lexical-binding: t; -*-
+;;; emms-info-native-vorbis-tests.el --- Test suite for 
emms-info-native-vorbis  -*- lexical-binding: t; -*-
 
 ;; Copyright (C) 2023 Free Software Foundation, Inc.
 
@@ -23,7 +23,7 @@
 
 ;;; Code:
 
-(require 'emms-info-vorbis)
+(require 'emms-info-native-vorbis)
 (require 'ert)
 
 (ert-deftest emms-vorbis-test-extract-comments ()
@@ -40,24 +40,22 @@
                   (length . 20))
                  ((user-comment . "ALBUM=A toda Cuba le gusta")
                   (length . 26))))))
-    (should (equal (emms-info-vorbis-extract-comments comments)
+    (should (equal (emms-info-native-vorbis-extract-comments comments)
                    (quote (("album" . "A toda Cuba le gusta")
                            ("originalyear" . "1997")
                            ("originaldate" . "1997-03-31")))))))
 
 (ert-deftest emms-vorbis-test-split-comment ()
-  (should (equal (emms-info-vorbis--split-comment "") nil))
-  (should (equal (emms-info-vorbis--split-comment "x") nil))
-  (should (equal (emms-info-vorbis--split-comment "x=") nil))
-  (should (equal (emms-info-vorbis--split-comment "=x") nil))
-  (should (equal (emms-info-vorbis--split-comment "a=B")
+  (should (equal (emms-info-native-vorbis--split-comment "") nil))
+  (should (equal (emms-info-native-vorbis--split-comment "x") nil))
+  (should (equal (emms-info-native-vorbis--split-comment "x=") nil))
+  (should (equal (emms-info-native-vorbis--split-comment "=x") nil))
+  (should (equal (emms-info-native-vorbis--split-comment "a=B")
                  (cons "a" "B")))
-  (should (equal (emms-info-vorbis--split-comment "abc=ABC=123")
+  (should (equal (emms-info-native-vorbis--split-comment "abc=ABC=123")
                  (cons "abc" "ABC=123")))
   (let ((comment "Key=\316\237\341\275\220\317\207\341\275\266 
\316\244\316\261\341\275\220\317\204\341\275\260"))
-    (should (equal (emms-info-vorbis--split-comment comment)
+    (should (equal (emms-info-native-vorbis--split-comment comment)
                    (cons "key" "Οὐχὶ Ταὐτὰ")))))
 
-(provide 'emms-info-vorbis-tests)
-
-;;; emms-info-vorbis-tests.el ends here
+;;; emms-info-native-vorbis-tests.el ends here
diff --git a/test/emms-tests.el b/test/emms-tests.el
index c5b9318b99..217b4e2856 100644
--- a/test/emms-tests.el
+++ b/test/emms-tests.el
@@ -58,6 +58,4 @@
   (should (= (emms-extract-bits 128 32) 0))
   (should (= (emms-extract-bits 4294688772 21 31) 2047)))
 
-(provide 'emms-tests)
-
 ;;; emms-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]