mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-09-24 15:54:12 +00:00
32 lines
941 B
C++
32 lines
941 B
C++
|
#include "main.h"
|
||
|
#include "api_mldb.h"
|
||
|
|
||
|
// returns 0 on success
|
||
|
// returns 1 on failure of either bad filename or invalid table
|
||
|
int RemoveFileFromDB(const wchar_t *filename)
|
||
|
{
|
||
|
// From mldbApi
|
||
|
int ret = 1;
|
||
|
if (!g_table) openDb();
|
||
|
if (filename && g_table)
|
||
|
{
|
||
|
// Issue wasabi callback for pre removal
|
||
|
WASABI_API_SYSCB->syscb_issueCallback(api_mldb::SYSCALLBACK, api_mldb::MLDB_FILE_REMOVED_PRE, (size_t)filename, 0);
|
||
|
EnterCriticalSection(&g_db_cs);
|
||
|
|
||
|
nde_scanner_t s = NDE_Table_CreateScanner(g_table);
|
||
|
if (NDE_Scanner_LocateFilename(s, MAINTABLE_ID_FILENAME, FIRST_RECORD, filename))
|
||
|
{
|
||
|
NDE_Scanner_Delete(s);
|
||
|
NDE_Scanner_Post(s);
|
||
|
g_table_dirty++;
|
||
|
ret = 0;
|
||
|
}
|
||
|
NDE_Table_DestroyScanner(g_table, s);
|
||
|
LeaveCriticalSection(&g_db_cs);
|
||
|
// Issue wasabi callback for post removal
|
||
|
WASABI_API_SYSCB->syscb_issueCallback(api_mldb::SYSCALLBACK, api_mldb::MLDB_FILE_REMOVED_POST, (size_t)filename, 0);
|
||
|
}
|
||
|
return ret;
|
||
|
}
|