Xojo Conferences
MBSSep2018MunichDE
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

/Tools/LibTag/TagReader
Function:
Required plugins for this example: MBS Tools Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Tools/LibTag/TagReader
This example is the version from Thu, 27th Sep 2017.
Project "TagReader.rbp"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
EventHandler Sub ExpandRow(row As Integer) dim v as Variant = me.RowTag(row) if v isa TagLibAudioPropertiesMBS then // audio properties dim a as TagLibAudioPropertiesMBS = v List.AddRow "Bitrate", str(a.Bitrate) List.AddRow "Channels", str(a.Channels) List.AddRow "Length", str(a.Length) List.AddRow "SampleRate", str(a.SampleRate) elseif v isa Dictionary then // property map dim d as Dictionary = v for each key as Variant in d.keys dim val as Variant = d.Value(key) List.AddRow key, val next elseif v isa TagLibTagMBS then // standard dim t as TagLibTagMBS = v List.AddRow "Album", t.Album List.AddRow "Artist", t.Artist List.AddRow "Comment", t.Comment List.AddRow "Genre", t.Genre List.AddRow "Title", t.Title if t.Track <> 0 then List.AddRow "Track", str(t.Track) end if if t.Year <> 0 then List.AddRow "Year", str(t.Year) end if end if End EventHandler
End Control
Control OpenButton Inherits PushButton
ControlInstance OpenButton Inherits PushButton
EventHandler Sub Action() // for testing a test file on desktop dim ff as FolderItem = SpecialFolder.Desktop.Child("test.mp3") if not ff.Exists then // let user pick one ff = GetOpenFolderItem(FileTypes1.All) end if if ff = nil then Return // read it List.DeleteAllRows dim f as new TagLibFileRefMBS(ff) dim a as TagLibAudioPropertiesMBS = f.audioProperties dim t as TagLibTagMBS = f.tags List.AddRow "File", ff.name if a <> nil then List.AddFolder "Audio Properties" List.RowTag(List.LastIndex) = a List.Expanded(List.LastIndex) = true end if if t <> nil then List.AddFolder "Standard Tags" List.RowTag(List.LastIndex) = t List.Expanded(List.LastIndex) = true List.AddFolder "Properties" List.RowTag(List.LastIndex) = t.Tags else MsgBox "Failed to read file." end if End EventHandler
End Control
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
FileTypes1
Filetype audio/mp3
Filetype audio/mp4
Filetype audio/aiff
Filetype audio/wav
Filetype audio/x-m4a
Filetype audio/x-m4a
End FileTypes1
End Project

Feedback, Comments & Corrections

The items on this page are in the following plugins: MBS Tools Plugin.




Links
MBS Xojo blog