User Tools

Site Tools


qhimdtransfer

QHiMDTransfer

Premise

QHiMDTransfer is supposed to be a simple clone of the Mac OS X software “HiMD Music Transfer for Mac 2.0”. The reason for using Qt is that it allows an application to be compiled and run on any platform supporting Qt, including Linux, *BSD, Solaris, Mac OS X and Windows. QHiMDTransfer uses the libraries libnetmd and libhimd to communicate with the walkman devices. The preferred tool for designing the graphical user interface and the program code of QHiMDTransfer is “Qt Creator 1.0” using “Qt 4.5.x” on Linux. Both can be obtained from http://qtsoftware.com.

Specifications

The application should have the following features:

  • Support for reading MP3s in Unicode and converting them to the format in the HiMD container (probably some Windows codepage for FAT16)
  • display diskname and diskid in the status-bar
  • display each group in treewidget with different background colors (green/white/green/white/…)
  • renaming of groups and tracks
  • deleting of tracks/groups

Advanced features:

  • Format HiMD
  • Possibility to move tracks within the list-view
  • Play back tracks from the HiMD over the computer speakers (dropped)
  • Use ffmpeg-codecs to convert uploaded tracks into other formats, e.g. ATRAC-SP into WAV

Screenshots

Linux/Fedora Rawhide screenshot as of 02.06.2010:

Linux/Ubuntu screenshot as of 02.02.2010:

MacOS screenshot as of 21.10.2009:

Screenshot as of 19.10.2009, featuring progress bars and new layout with filebrowser.

Screenshot showing a recent version as of 07.10.2009 with status dialog after upload:

qhimdtransfer_uploadstatus.jpg

Screenshot of updated GUI running on GNOME/X11/GNU/Linux:

qhimdtransfer6.jpg

Screenshot of main application window, running on GNOME/X11/GNU/Linux:

qhimdtransfer.jpg

Screenshot of track listing window, running on GNOME/X11/GNU/Linux:

qhimdtransfer3.jpg

Screenshot of track listing window, running on Mac OS X Leopard:

Icons

The icons can easily be made with Inkscape http://www.inkscape.org. The following figures for the icons are suggested:

  • Connect: An USB-Plug
  • Download to MD: A MiniDisc with a green arrow directed downwards
  • Upload from MD: A MiniDisc with a red arrow directed upwards
  • Delete selected: A trashcan icon
  • Rename selected: An icon of some text being edited (a few characters with a cursor)
  • Format: A MiniDisc with a red “X”
  • Add group: a folder icon with a ”+”
  • Help: A question mark
  • About: A copyright-sign
  • Quit: An exit-door

Numinos has created an icon set for the buttons above:

http://users.physik.fu-berlin.de/~glaubitz/linux-minidisc/program-icons.tar.gz

About Dialog

The about dialog could need some sprucing-up. Comparing to the one of pidgin, which has a good design standard, our dialog looks quite boring and somewhat inconsistent. Also, the information within it doesn't need to be translated.

The new dialog should contain:

  • all people listed in Contributors, sorted by their contribution
  • contact information (IRC channel, mail addresses, mailing list URL, website, …)
  • version information of the current build from git

The following screenshot compares the about dialog from QHiMDTransfer with the one from the current version of pidgin:

libhimd

libhimd will provide functionality to communicate with HiMD devices by accessing the files stored on the minidisc, so it works without special priviledges and also on images. For MPEG audio tracks this approach has been proven to be enough, and it is suspected that is also works for LPCM tracks.

The source code is structured into the following files

  • himd.c - Main library code providing functions on the top level himd object
  • encryption.c - All the stuff related to cryptography and key determination
  • mdstream.c - Functions to read/write audio streams in the atdataXX.hma file
  • trackindex.c - Functionality to encode/decode track metadata

http://users.physik.fu-berlin.de/~glaubitz/linux-minidisc/libhimd_uploadtest.zip - An MP3 transfered onto a MiniDisc with SonicStage and then uploaded with libhimd again.

qhimdtransfer.txt · Last modified: 2010/06/12 00:04 by glaubitz