violent_ken
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
2
26 août 2005 à 22:01
Violent Ken
Winamp lit tout simplement les tags de tes mp3.
Tiens, un code :
Global ReadOnly As Boolean
Dim FF
Dim txt1 As String * 30
Dim txt2 As String * 4
Global sngG As Byte
Public Enum Mp3GenreConv
VersTexte = 0
VersByte = 1
End Enum
Option Explicit
Public Function GetTitre(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 124, txt1
Close FF
GetTitre = Trim$(txt1)
End Function
Public Function GetAuteur(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 94, txt1
Close FF
GetAuteur = Trim$(txt1)
End Function
Public Function GetAlbum(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 64, txt1
Close FF
GetAlbum = Trim$(txt1)
End Function
Public Function GetCommentaire(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 30, txt1
Close FF
GetCommentaire = Trim$(txt1)
End Function
Public Function GetAnnee(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 34, txt2
Close FF
GetAnnee = Trim$(txt2)
End Function
Public Function GetGenre(fichier As String) As String
If CheckTag(fichier, False) = False Then
MsgBox "Le fichier n'est pas taggé !", vbInformation + vbOKOnly, "Tag"
Exit Function
End If
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier), sngG
Close FF
If sngG > 79 Then sngG = 12
GetGenre = GenreConv(VersTexte, sngG)
End Function
Public Function PutTitre(fichier As String, Titre As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Titre
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 124, txt1
Close FF
End Function
Public Function PutAuteur(fichier As String, Auteur As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Auteur
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 94, txt1
Close FF
End Function
Public Function PutAlbum(fichier As String, Album As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Album
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 64, txt1
Close FF
End Function
Public Function PutCommentaire(fichier As String, Commentaire As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt1 = Commentaire
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 30, txt1
Close FF
End Function
Public Function PutAnnee(fichier As String, Annee As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
txt2 = Annee
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier) - 34, txt2
Close FF
End Function
Public Function PutGenre(fichier As String, Genre As String)
CheckTag fichier, True
If ReadOnly = True Then Exit Function
sngG = GenreConv(VersByte, Genre)
FF = FreeFile
Open fichier For Binary As FF
Put FF, FileLen(fichier), sngG
Close FF
End Function
Public Function GenreConv(Sens As Mp3GenreConv, Genre As Variant) As Variant
Dim G As Variant
If Sens = VersByte Then
If VarType(Genre) <> vbString Then
MsgBox "Le genre doit être du texte !", vbExclamation + vbOKOnly
GenreConv = -1
Exit Function
End If
Select Case Genre
Case "Blues"
G = 0
Case "Classic Rock"
G = 1
Case "Country"
G = 2
Case "Dance"
G = 3
Case "Disco"
G = 4
Case "Funk"
G = 5
Case "Grunge"
G = 6
Case "Hip-Hop"
G = 7
Case "Jazz"
G = 8
Case "Metal"
G = 9
Case "New Age"
G = 10
Case "Oldies"
G = 11
Case "Other"
G = 12
Case "Pop"
G = 13
Case "R&B"
G = 14
Case "Rap"
G = 15
Case "Reggae"
G = 16
Case "Rock"
G = 17
Case "Techno"
G = 18
Case "Industrial"
G = 19
Case "Alternative"
G = 20
Case "Ska"
G = 21
Case "Death Metal"
G = 22
Case "Pranks"
G = 23
Case "Soundtrack"
G = 24
Case "Euro-Techno"
G = 25
Case "Ambient"
G = 26
Case "Trip-Hop"
G = 27
Case "Vocal"
G = 28
Case "Jazz+Funk"
G = 29
Case "Fusion"
G = 30
Case "Trance"
G = 31
Case "Classical"
G = 32
Case "Instrumental"
G = 33
Case "Acid"
G = 34
Case "House"
G = 35
Case "Game"
G = 36
Case "Sound Clip"
G = 37
Case "Gospel"
G = 38
Case "Noise"
G = 39
Case "AlternRock"
G = 40
Case "Bass"
G = 41
Case "Soul"
G = 42
Case "Punk"
G = 43
Case "Space"
G = 44
Case "Meditative"
G = 45
Case "Instrumental Pop"
G = 46
Case "Instrumental Rock"
G = 47
Case "Ethnic"
G = 48
Case "Gothic"
G = 49
Case "Darkwave"
G = 50
Case "Techno-Industrial"
G = 51
Case "Electronic"
G = 52
Case "Pop-Folk"
G = 53
Case "Eurodance"
G = 54
Case "Dream"
G = 55
Case "Southern Rock"
G = 56
Case "Comedy"
G = 57
Case "Cult"
G = 58
Case "Gangsta"
G = 59
Case "Top 40"
G = 60
Case "Christian Rap"
G = 61
Case "Pop/Funk"
G = 62
Case "Jungle"
G = 63
Case "Native American"
G = 64
Case "Cabaret"
G = 65
Case "New Wave"
G = 66
Case "Psychadelic"
G = 67
Case "Rave"
G = 68
Case "Showtunes"
G = 69
Case "Trailer"
G = 70
Case "Lo-Fi"
G = 71
Case "Tribal"
G = 72
Case "Acid Punk"
G = 73
Case "Acid Jazz"
G = 74
Case "Polka"
G = 75
Case "Retro"
G = 76
Case "Musical"
G = 77
Case "Rock & Roll"
G = 78
Case "Hard Rock"
G = 79
End Select
End If
If Sens = VersTexte Then
If VarType(Genre) <> vbByte Then
MsgBox "Le genre doit être de type Byte !", vbExclamation + vbOKOnly
GenreConv = -1
Exit Function
End If
Select Case Genre
Case 0
G = "Blues"
Case 1
G = "Classic Rock"
Case 2
G = "Country"
Case 3
G = "Dance"
Case 4
G = "Disco"
Case 5
G = "Funk"
Case 6
G = "Grunge"
Case 7
G = "Hip-Hop"
Case 8
G = "Jazz"
Case 9
G = "Metal"
Case 10
G = "New Age"
Case 11
G = "Oldies"
Case 12
G = "Other"
Case 13
G = "Pop"
Case 14
G = "R&B"
Case 15
G = "Rap"
Case 16
G = "Reggae"
Case 17
G = "Rock"
Case 18
G = "Techno"
Case 19
G = "Industrial"
Case 20
G = "Alternative"
Case 21
G = "Ska"
Case 22
G = "Death Metal"
Case 23
G = "Pranks"
Case 24
G = "Soundtrack"
Case 25
G = "Euro-Techno"
Case 26
G = "Ambient"
Case 27
G = "Trip-Hop"
Case 28
G = "Vocal"
Case 29
G = "Jazz+Funk"
Case 30
G = "Fusion"
Case 31
G = "Trance"
Case 32
G = "Classical"
Case 33
G = "Instrumental"
Case 34
G = "Acid"
Case 35
G = "House"
Case 36
G = "Game"
Case 37
G = "Sound Clip"
Case 38
G = "Gospel"
Case 39
G = "Noise"
Case 40
G = "AlternRock"
Case 41
G = "Bass"
Case 42
G = "Soul"
Case 43
G = "Punk"
Case 44
G = "Space"
Case 45
G = "Meditative"
Case 46
G = "Instrumental Pop"
Case 47
G = "Instrumental Rock"
Case 48
G = "Ethnic"
Case 49
G = "Gothic"
Case 50
G = "Darkwave"
Case 51
G = "Techno-Industrial"
Case 52
G = "Electronic"
Case 53
G = "Pop-Folk"
Case 54
G = "Eurodance"
Case 55
G = "Dream"
Case 56
G = "Southern Rock"
Case 57
G = "Comedy"
Case 58
G = "Cult"
Case 59
G = "Gangsta"
Case 60
G = "Top 40"
Case 61
G = "Christian Rap"
Case 62
G = "Pop/Funk"
Case 63
G = "Jungle"
Case 64
G = "Native American"
Case 65
G = "Cabaret"
Case 66
G = "New Wave"
Case 67
G = "Psychadelic"
Case 68
G = "Rave"
Case 69
G = "Showtunes"
Case 70
G = "Trailer"
Case 71
G = "Lo-Fi"
Case 72
G = "Tribal"
Case 73
G = "Acid Punk"
Case 74
G = "Acid Jazz"
Case 75
G = "Polka"
Case 76
G = "Retro"
Case 77
G = "Musical"
Case 78
G = "Rock & Roll"
Case 79
G = "Hard Rock"
End Select
End If
GenreConv = G
End Function
Private Function CheckTag(fichier As String, Ecrire As Boolean) As Boolean
ReadOnly = FalseIf (GetAttr(fichier) 1 Or GetAttr(fichier) 33) And Ecrire = True Then
MsgBox "Le fichier est en lecture seule !", vbExclamation + vbOKOnly, "Tag"
ReadOnly = True
Exit Function
End If
CheckTag = True
Dim Tag As String * 3
FF = FreeFile
Open fichier For Binary As FF
Get FF, FileLen(fichier) - 127, Tag
If Tag <> "TAG" Then CheckTag = FalseIf Ecrire True And CheckTag False Then
Dim TagSpace As String * 128
TagSpace = "TAG"
Put FF, FileLen(fichier), TagSpace
End If
Close FF
End Function
@+