rendered paste body def initItems
artists = Array.new
albums = Array.new
genre = Array.new
device_paths = Array.new
collection = KDE::DCOPRef.new( 'amarok', 'collection' )
[ { :dbresult=>collection.query( 'select * from album' ), :indexed => albums },
{ :dbresult=>collection.query( 'select * from artist' ), :indexed => artists },
{ :dbresult=>collection.query( 'select * from genre' ) , :indexed => genre },
{ :dbresult=>collection.query( 'select id, lastmountpoint from devices' ), :indexed => device_paths } ].each { |h|
0.step( h[ :dbresult ].size, 2 ) { |i|
h[ :indexed ][ h[ :dbresult ][i].to_i ] = h[ :dbresult ][ i.to_i+1 ]
}
}
columns = [ "album, ", "artist, ", "genre, ", "url, ", "track, ", "title, ", "year, ", "length, ", "samplerate, ", "composer, ", "deviceid" ]
@column_keys = [ :songalbum, :songartist, :songgenre, :url, :songtracknumber, :itemname, :songyear, :songtime, :songsamplerate, :songcomposer, :deviceid ]
bigquery = "SELECT #{columns.to_s} FROM tags"
puts "here is the big query " + collection.inspect
dbitems = collection.query( bigquery )
@items = Array.new
0.step( dbitems.size, columns.size ) { |overallIt|
track = Hash.new
0.step( 3, 1 ) { |columnIt|
track[ @column_keys[columnIt] ] = collection[columnIt][:indexed][ dbitems[ overallIt + columnIt] ]
}
4.step( @column_keys.size, 1 ) { |columnIt|
track[ @column_keys[columnIt] ] = dbitems[ overallIt + columnIt ]
}
@items.push(track)
}
end