7 WaveCacheItem::WaveCacheItem()
12 WaveCacheItem::~WaveCacheItem()
16 int WaveCacheItem::get_size()
18 return sizeof(WaveCacheItem) + (path ? strlen(path) : 0);
23 WaveCache::WaveCache()
28 WaveCache::~WaveCache()
33 WaveCacheItem* WaveCache::get_wave(int asset_id,
38 lock->lock("WaveCache::get_wave");
40 WaveCacheItem *result = 0;
42 result = (WaveCacheItem*)get_item(start);
43 while(result && result->position == start)
45 if(result->asset_id == asset_id &&
46 result->channel == channel &&
49 result->age = get_age();
53 result = (WaveCacheItem*)result->next;
60 void WaveCache::put_wave(Asset *asset,
67 lock->lock("WaveCache::put_wave");
68 WaveCacheItem *item = new WaveCacheItem;
69 item->asset_id = asset->id;
70 item->path = strdup(asset->path);
71 item->channel = channel;
72 item->position = start;