<?php
function ReadCSV ($file)
{
if (($handle = fopen($file, "r")) !== FALSE) {
$all_rows = array();
$header = null;
while ($row = fgetcsv($handle)) {
if ($header === null) {
$header = $row;
continue;
}
$all_rows[] = array_combine($header, $row);
}
return $all_rows;
} else return NULL;
}
function Lookup ($file, $folderName)
{
if (($handle = fopen($file, "r")) !== FALSE) {
$header = null;
while ($row = fgetcsv($handle)) {
if ($header === null) {
$header = $row;
continue;
}
$vst = array_combine($header, $row);
if ($vst['folder'] == $folderName) return $vst;
}
return NULL;
} else return NULL;
}
function HasAllTags ($vst, $requiredTags)
{
$tags = explode('|', $vst['tags']);
foreach ($requiredTags as $tag) if (!in_array($tag, $tags)) return FALSE;
return TRUE;
}
function HasNoTags ($vst, $unwantedTags)
{
$tags = explode('|', $vst['tags']);
foreach ($unwantedTags as $tag) if (in_array($tag, $tags)) return FALSE;
return TRUE;
}
function Filter ($vstArray, $requiredTags, $unwantedTags)
{
$outArray = array();
foreach ($vstArray as $vst)
{
if (HasAllTags($vst, $requiredTags) && HasNoTags($vst, $unwantedTags))
$outArray[] = $vst;
}
return $outArray;
}
function ConvertTags ($tagsString)
{
$tags = array();
foreach (explode('|', strtolower(str_replace(' ', '', $tagsString))) as $tag)
{
if ($tag == 'instrument') continue;
if ($tag == 'synthesizer') $tags[] = 'Synth';
else $tags[] = ucfirst($tag);
}
return $tags;
}
function MakeBundle ($name, $targets, $format, $downloadUrl)
{
$bundle = new stdClass();
$bundle->name = $name;
$bundle->targets = $targets;
$bundle->format = $format;
$bundle->downloadUrl = $downloadUrl;
return $bundle;
}
?>