- Main Page
- Modules
- Data Structures
- Files
- Related Pages

# Plug-ins
[Architecture]

### Organisation

### Description

Text reader
  This plug-in allows to open a basic text file.
  The text format supported are ASCII, UTF16, UTF16BE, and UTF8.
  The multi open text file is supported.
  The complete user interface is the public routine provided in the reader_txt.c C files.

Note:
  the modification routines are not developed.

Play list
  This plug-in allows to open a file play list included in a text file.
  The extension supported are *.m3u, *.m3u8, *.txt.
  The file format supported are ASCII, UTF16, UTF16BE, and UTF8.
  The plug-in opens the play list file in a specific navigator (see Configuration) and selects a file (included in the play list) in current navigator.
  The complete user interface is the public routine provided in the play_list.c C files.

Note:
  - The line with the character '#' at beginning are ignored.
  - It isn't possible to open many play list files in same time.
  - The modification routines are not developed.

Automatic Navigation
  Automatic navigation has been developed for the player/viewer module. The plug-in provides a specific "file list". The "file list" contains all files included in a playlist or it is built with the following user specifications :
  - extension filter
  - limitation scan (folder, folder and sub folder, one disk, all disks)

The plug-in can manage a random feature.
The complete user interface is the public routine provided in the nav_automatic.c C files.

Note:
  The play list limitations is 65535 files.

Filter list
  This plug-in has the same navigation routines as the ones included in navigation.c, but it filters the files with an extension filter.
  The complete user interface is the public routine provided in the nav_filterlist.c C files.
  Example:

      // A disk architecture
      folder1
      |  folder3
      |  |  file4.mp3
      |  file5.txt
      folder2
      |  file6.txt
      file1.mp3
      file2.txt
      file3.mp3

      // The "File list" provided by basic navigator when the "root" is the "current folder"
      folder1
      folder2
      file1.mp3
      file2.txt
      file3.mp3

      // The "File list" provided by basic navigator when the "folder1" is the "current folder" (via nav_dir_cd())
      folder3
      file5.txt

      // The "File list" provided by Filter navigator when the "root" is the "current folder"
      folder1
      folder2
      file1.mp3
      file3.mp3

      // The "File list" provided by Filter navigator when the "folder1" is the "current folder" (via nav_dir_cd())
      folder3

Flat mode
  The FLAT mode ignores the folder level and displays in the navigation list all files/folders present in sub folder of current folder.
  Example:

      // A disk architecture
      folder1
      |  folder3
      |  |  file4
      |  file5
      folder2
      |  file6
      file1
      file2
      file3

      // The "File list" provided by basic navigator when the "root" is the "current folder"
      folder1
      folder2
      file1
      file2
      file3

      // The "File list" provided by basic navigator when the "folder1" is the "current folder" (via nav_dir_cd())
      folder3
      file5

      // The "File list" provided by FLAT navigator when the "root" is the "current folder"
      folder1
      folder3
      file4
      file5
      folder2
      file6
      file1
      file2
      file3

      // The "File list" provided by FLAT navigator when the "folder1" is the "current folder" (via nav_dir_cd())
      folder3
      file4
      file5

  The complete user interface is the public routine provided in the nav_flat.c C files.

Filter & Flat mode
  This plug-in includes the feature of plug-in "Filter list" and "Flat mode".
  The complete user interface is the public routine provided in the nav_filterflat.c C files.

### Configuration

The following defines must be included in a conf_explorer.h header file :

Play list

    // Navigator used to open the file playlist
    #define FS_NAV_ID_PLAYLIST    2
    // Playlist Interface to allocate a space to store the current path included in play list
    // Example with alloc library
    #define  PLAYLIST_BUF_ALLOC( size )    malloc( size )
    #define  PLAYLIST_BUF_FREE( buf )      free( buf )
    // Example with no alloc library
    #define  PLAYLIST_BUF_ALLOC( size )    ((sizeof(g_buffer_512)>512)? NULL : g_buffer_512)
    #define  PLAYLIST_BUF_FREE( buf )

Automatic Navigation

    // The feature "count all files available" may be disabled to save time at startup
    #define  FS_NAV_AUTOMATIC_NBFILE  ENABLE
    // Specify the file order in the list provided by the plug-in "Automatic Navigation" (nav_automatic.c)
    #define  NAV_AUTO_FILE_IN_FIRST     // Uncomment to disable feature
    // Size of the split for the random (Unit 8 files)
    #define  NAVAUTO_MAX_RANGE_RAND   8     // 8*8= 64 file
    // Random value methode (byte value)
    #include "rand.h"
    #define  NAVAUTO_GET_RAND( value )   (value=rand())

Navigation Flat

    // Allow modules FLAT mode (nav_flat.c & navfilterflat.c)
    #define  NAVIGATION_MODE_FLAT       // Uncomment to disable feature