So I was playing garrysmod, and was tinkering with Foobar2000 To see if I could get it to play a song I wanted just through shortcuts, rather than alt tabbing out of the game every time to choose the file I want to play.
Lots of tinkering with it, no success.
So I asked one of the guys on the server who was also playing songs if he knew how to do it.
He said he was using an VGUI menu music player in garrysmod with Itunes as the player.
EDIT: May have found a lua script that does what I want... Only one major problem, after I have made it a LUA file in the appropriate folder... How do i access it? ._.
This is the script I'm thinking may work.
PANEL = {}
PANEL.Name = "iTunes"
PANEL.Desc = "Control iTunes from GMod"
PANEL.TabIcon = "gui/silkicons/music"
PANEL.iTunes = itunes.CreateInterf ace()
PANEL.Skin = "" -- _blue
function PANEL:Init()
self:SetMouseInputEnable d(true)
self:SetKeyboardInputEna bled(true)
self.ControlPanel = vgui.Create("DPanel",self)
--self.SongList = vgui.Create("DPanel",self)
--self.PlayList = vgui.Create("DPanel",self)
self.PlayState = tobool(self.iTunes:GetPlayerState())
self.Button_PlaySto p = vgui.Create("DImageButton",self.ControlPanel)
self.Button_PlaySto p:SetPos(40,20)
self.Button_PlaySto p:SetSize(16,16)
self.Button_PlaySto p:SetImage((tobool(self.iTunes:GetPlayerState()) == true and "gui/silkicons/control_stop" or "gui/silkicons/control_play")..self.Skin)
self.Button_PlaySto p.DoClick = function(btn)
if tobool(self.iTunes:GetPlayerState()) == true then
btn:SetImage("gui/silkicons/control_play"..self.Skin)
self.iTunes:Stop()
else
btn:SetImage("gui/silkicons/control_stop"..self.Skin)
self.iTunes:Play()
end
end
self.Button_Next = vgui.Create("DImageButton",self.ControlPanel)
self.Button_Next:SetPos(60,20)
self.Button_Next:SetSize(16,16)
self.Button_Next:SetImage("gui/silkicons/control_fastforward"..self.Skin)
self.Button_Next.Do Click = function(btn)
self.iTunes:NextTrack()
end
self.Button_Back = vgui.Create("DImageButton",self.ControlPanel)
self.Button_Back:SetPos(20,20)
self.Button_Back:SetSize(16,16)
self.Button_Back:SetImage("gui/silkicons/control_rewind"..self.Skin)
self.Button_Back.Do Click = function(btn)
self.iTunes:BackTrack()
end
self.Slider_Volume = vgui.Create("DSlider",self.ControlPanel)
self.Slider_Volume:SetPos(100,21)
self.Slider_Volume:SetSize(150,13)
self.Slider_Volume:SetLockY(0.5)
self.Slider_Volume:SetTrapInside(true)
self.Slider_Volume:SetImage("vgui/slider")
self.Slider_Volume:SetSlideX(self.iTunes:GetSoundVolume()/100)
self.Slider_Volume. TranslateValues = function(slider,x,y)
x = math.floor(x*100)/100
self.iTunes:SetSoundVolume(x*100)
return x,y
end
Derma_Hook(self.Slider_Volume,"Paint","Paint","NumSlider")
self.CurrentTrack = self.iTunes:GetCurrentTrack()
self.CurrentTitle = self.CurrentTrack:GetName()
self.CurrentArtist = self.CurrentTrack:GetArtist()
self.PlayerPosition = math.floor(self.iTunes:GetPlayerPosition() / self.CurrentTrack:GetDuration() * 100)
self.Info_CurrentTr ack = vgui.Create("DPanel",self.ControlPanel)
self.Info_CurrentTr ack:SetSize(500,55)
self.Info_CurrentTr ack.OldPaint = self.Info_CurrentTr ack.Paint
self.Info_CurrentTr ack.Paint = function(pnl)
self.Info_CurrentTr ack.OldPaint(pnl)
draw.DrawText(self.CurrentArtist. ." - "..self.CurrentTitle,"Default",100,10,Color(255,255,255,255),ALIGN_LEFT)
end
self.Slider_Track = vgui.Create("DSlider",self.Info_CurrentTrack)
self.Slider_Track:SetPos(100,31)
self.Slider_Track:SetSize(300,13)
self.Slider_Track:SetLockY(0.5)
self.Slider_Track:SetTrapInside(true)
self.Slider_Track:SetImage("vgui/slider")
self.Slider_Track:SetSlideX(self.PlayerPosition/100)
self.Slider_Track.T ranslateValues = function(slider,x,y)
x = math.floor(x*100)/100
self.iTunes:SetPlayerPosition(x*100)
return x,y
end
Derma_Hook(self.Slider_Track,"Paint","Paint","NumSlider")
self.TrackList = vgui.Create("DListView",self)
self.TrackList:AddColumn("Title"):SetFixedWidth(400)
self.TrackList:AddColumn("Artist"):SetFixedWidth(200)
self.TrackList:AddColumn("Album"):SetFixedWidth(200)
self.TrackList:AddColumn("Last Played")
self.TrackList:SetDataHeight(16)
self.CurrentPlayLis t = self.iTunes:GetCurrentPlaylist()
function LoadPlayList(lib)
self.TrackList:Clear()
local tracklist = lib:GetTracks()
for i=1,tracklist:GetCount() do
local track = tracklist:GetItem(i)
local name = track:GetName()
local artist = track:GetArtist()
local album = track:GetAlbum()
local last = track:GetPlayedDate()
self.TrackList:AddLine(name,artist,album,last)
end
end
LoadPlayList(self.CurrentPlayLis t)
self.PlayList = vgui.Create("DListView",self)
self.PlayList:AddColumn("PlayLists")
self.PlayList:SetDataHeight(16)
self.PlayList:SetMultiSelect(false)
self.PlayList.OnCli ckLine = function(parent,line,selected)
line:SetSelected(true)
local lib = self.PlayListLib:GetItemByName(line:GetValue(1))
if lib then LoadPlayList(lib) end
end
self.Source = self.iTunes:GetLibrarySource()
self.PlayListLib = self.Source:GetPlaylists()
for i=1,self.PlayListLib:GetCount() do
local playlist = self.PlayListLib:GetItem(i)
local name = playlist:GetName()
if !table.HasValue({"Mediathek","Filme","Fernsehsendungen","Podcasts","Einkäufe","Genius","iTunes DJ","Klassische Musik","Zuletzt Hinzugefügt"},name) then
self.PlayList:AddLine(name)
end
end
/*
itunes.CreateInterf ace()
IiTunes:Release()
IiTunes:BackTrack()
IiTunes:FastForward()
IiTunes:GetCurrentStreamTit le()
IiTunes:GetCurrentStreamURL()
IiTunes:GetCurrentPlaylist()
IiTunes:GetCurrentTrack()
IiTunes:GetLibraryPlaylist()
IiTunes:GetLibrarySource()
IiTunes:GetMute()
IiTunes:GetPlayerPosition()
IiTunes:GetPlayerState()
IiTunes:GetSoundVolume()
IiTunes:GetSources()
IiTunes:GetVersion()
IiTunes:NextTrack()
IiTunes:Pause()
IiTunes:Play()
IiTunes:PlayFile(filePath)
IiTunes:PlayPause()
IiTunes:PreviousTrack()
IiTunes:Quit()
IiTunes:Resume()
IiTunes:Rewind()
IiTunes:SetMute(mute)
IiTunes:SetPlayerPosition(position)
IiTunes:SetSoundVolume(volume)
IiTunes:Stop()
IiTunes:SubscribeToPodcast(url)
IiTunes:UpdateIPod()
IiTunes:UpdatePodcastFeeds()
IITTrack:Release()
IITTrack:GetIndex()
IITTrack:GetName()
IITTrack:GetPlaylistID()
IITTrack:GetSourceID()
IITTrack:GetTrackDatabaseID()
IITTrack:GetTrackID()
IITTrack:SetName()
IITTrack:Delete()
IITTrack:GetAlbum()
IITTrack:GetArtist()
IITTrack:GetBitRate()
IITTrack:GetBPM()
IITTrack:GetComment()
IITTrack:GetCompilation()
IITTrack:GetComposer()
IITTrack:GetDateAdded()
IITTrack:GetDiscCount()
IITTrack:GetDiscNumber()
IITTrack:GetDuration()
IITTrack:GetEnabled()
IITTrack:GetEQ()
IITTrack:GetFinish()
IITTrack:GetGenre()
IITTrack:GetGrouping()
IITTrack:GetKind()
IITTrack:GetModificationDate()
IITTrack:GetPlayedCount()
IITTrack:GetPlayedDate()
IITTrack:GetPlaylist()
IITTrack:GetPlayOrderIndex()
IITTrack:GetRating()
IITTrack:GetSampleRate()
IITTrack:GetSize()
IITTrack:GetStart()
IITTrack:GetTime()
IITTrack:GetTrackCount()
IITTrack:GetTrackNumber()
IITTrack:GetVolumeAdjustment()
IITTrack:GetYear()
IITTrack:Play()
IITTrack:SetAlbum(album)
IITTrack:SetArtist(artist)
IITTrack:SetBPM(bpm)
IITTrack:SetComment(comment)
IITTrack:SetCompilation(compilation)
IITTrack:SetComposer(composer)
IITTrack:SetDiscCount(discCount)
IITTrack:SetDiscNumber(discNumber)
IITTrack:SetEnabled(enabled)
IITTrack:SetEQ(eq)
IITTrack:SetFinish(finish)
IITTrack:SetGenre(genre)
IITTrack:SetGrouping(grouping)
IITTrack:SetPlayedCount(count)
IITTrack:SetPlayedDate(playedDate)
IITTrack:SetRating(rating)
IITTrack:SetStart(start)
IITTrack:SetTrackCount(trackCount)
IITTrack:SetTrackNumber(trackNumber)
IITTrack:SetVolumeAdjustment(adjustment)
IITTrack:SetYear(year)
IITTrackCollection:Release()
IITTrackCollection:GetCount()
IITTrackCollection:GetItem(index)
IITTrackCollection:GetItemByName(name)
IITPlaylist:Release()
IITPlaylist:GetIndex()
IITPlaylist:GetName()
IITPlaylist:GetPlaylistID()
IITPlaylist:GetSourceID()
IITPlaylist:SetName(name)
IITPlaylist:Delete()
IITPlaylist:GetDuration()
IITPlaylist:GetKind()
IITPlaylist:GetShuffle()
IITPlaylist:GetSize()
IITPlaylist:GetSongRepeat()
IITPlaylist:GetSource()
IITPlaylist:GetTime()
IITPlaylist:GetTracks()
IITPlaylist:GetVisible()
IITPlaylist:PlayFirstTrack()
IITPlaylist:Search(search, field)
IITPlaylist:SetShuffle(shuffle)
IITPlaylist:SetSongRepeat(mode)
IITPlaylistCollecti on:Release()
IITPlaylistCollecti on:GetCount()
IITPlaylistCollecti on:GetItem(index)
IITPlaylistCollecti on:GetItemByName(name)
IITSource:Release()
IITSource:GetIndex()
IITSource:GetName()
IITSource:GetSourceID()
IITSource:SetName(name)
IITSource:GetCapacity()
IITSource:GetFreeSpace()
IITSource:GetKind()
IITSource:GetPlaylists()
IITSourceCollection:Release()
IITSourceCollection:GetCount()
IITSourceCollection:GetItem(index)
IITSourceCollection:GetItemByName(name)
*/
function GetiTunes()
return self
end
end
function PANEL:PerformLayout()
self:StretchToParent(4,27,4,4)
self.ControlPanel:StretchToParent(0,0,0,self:GetTall() - 55)
self.TrackList:StretchToParent(200,60,0,0)
self.PlayList:StretchToParent(0,60,self:GetWide() - 195,0)
self.Info_CurrentTr ack:SetPos(math.max(270,self:GetWide()/2 - 250),0)
end
function PANEL:Paint()
end