mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-17 00:20:06 +02:00
Add comments to document the SQL.
This commit is contained in:
parent
bc50e21532
commit
299710f0a9
@ -32,17 +32,43 @@ static const int ProjectFileID = ('A' << 24 | 'U' << 16 | 'D' << 8 | 'Y');
|
|||||||
static const int ProjectFileVersion = 1;
|
static const int ProjectFileVersion = 1;
|
||||||
static const int ProjectFilePageSize = 4096;
|
static const int ProjectFilePageSize = 4096;
|
||||||
|
|
||||||
|
|
||||||
|
// Navigation:
|
||||||
|
//
|
||||||
|
// Bindings are marked out in the code by, e.g.
|
||||||
|
// BIND SQL sampleblocks
|
||||||
|
// A search for "BIND SQL" will find all bindings.
|
||||||
|
// A search for "SQL sampleblocks" will find all SQL related
|
||||||
|
// to sampleblocks.
|
||||||
|
|
||||||
static const char *ProjectFileSchema =
|
static const char *ProjectFileSchema =
|
||||||
"PRAGMA application_id = %d;"
|
"PRAGMA application_id = %d;"
|
||||||
"PRAGMA user_version = %d;"
|
"PRAGMA user_version = %d;"
|
||||||
"PRAGMA page_size = %d;"
|
"PRAGMA page_size = %d;"
|
||||||
"PRAGMA journal_mode = DELETE;"
|
"PRAGMA journal_mode = DELETE;"
|
||||||
""
|
""
|
||||||
|
// CREATE SQL project
|
||||||
|
// doc is a variable sized XML text string.
|
||||||
|
// it is the former Audacity .aup file
|
||||||
|
// One instance only.
|
||||||
"CREATE TABLE IF NOT EXISTS project"
|
"CREATE TABLE IF NOT EXISTS project"
|
||||||
"("
|
"("
|
||||||
" doc TEXT"
|
" doc TEXT"
|
||||||
");"
|
");"
|
||||||
""
|
""
|
||||||
|
// CREATE SQL autosave
|
||||||
|
// autosave is a binary representation of an XML file.
|
||||||
|
// it's in binary for speed.
|
||||||
|
// One instance only. id is always 1.
|
||||||
|
// dict is a dictionary of fieldnames.
|
||||||
|
// doc is the binary representation of the XML
|
||||||
|
// in the doc, fieldnames are replaced by 2 byte dictionary
|
||||||
|
// index numbers.
|
||||||
|
// This is all opaque to SQLite. It just sees two
|
||||||
|
// big binary blobs.
|
||||||
|
// There is no limit to document blob size.
|
||||||
|
// dict will be smallish, with an entry for each
|
||||||
|
// kind of field.
|
||||||
"CREATE TABLE IF NOT EXISTS autosave"
|
"CREATE TABLE IF NOT EXISTS autosave"
|
||||||
"("
|
"("
|
||||||
" id INTEGER PRIMARY KEY,"
|
" id INTEGER PRIMARY KEY,"
|
||||||
@ -50,12 +76,26 @@ static const char *ProjectFileSchema =
|
|||||||
" doc BLOB"
|
" doc BLOB"
|
||||||
");"
|
");"
|
||||||
""
|
""
|
||||||
|
// CREATE SQL tags
|
||||||
|
// tags is not used (yet)
|
||||||
"CREATE TABLE IF NOT EXISTS tags"
|
"CREATE TABLE IF NOT EXISTS tags"
|
||||||
"("
|
"("
|
||||||
" name TEXT,"
|
" name TEXT,"
|
||||||
" value BLOB"
|
" value BLOB"
|
||||||
");"
|
");"
|
||||||
""
|
""
|
||||||
|
// CREATE SQL sampleblocks
|
||||||
|
// 'samples' are fixed size blocks of float32 numbers.
|
||||||
|
// The blocks may be partially empty.
|
||||||
|
// The quantity of valid data in the blocks is
|
||||||
|
// provided in the project XML.
|
||||||
|
//
|
||||||
|
// sampleformat was once used to specify whether floats
|
||||||
|
// or ints for the data, but is no longer used.
|
||||||
|
//
|
||||||
|
// blockID is a 64 bit number.
|
||||||
|
//
|
||||||
|
// summin to summary64K are summaries at 3 distance scales.
|
||||||
"CREATE TABLE IF NOT EXISTS sampleblocks"
|
"CREATE TABLE IF NOT EXISTS sampleblocks"
|
||||||
"("
|
"("
|
||||||
" blockid INTEGER PRIMARY KEY AUTOINCREMENT,"
|
" blockid INTEGER PRIMARY KEY AUTOINCREMENT,"
|
||||||
@ -892,6 +932,7 @@ bool ProjectFileIO::AutoSave(const AutoSaveFile &autosave)
|
|||||||
const wxMemoryBuffer &dict = autosave.GetDict();
|
const wxMemoryBuffer &dict = autosave.GetDict();
|
||||||
const wxMemoryBuffer &data = autosave.GetData();
|
const wxMemoryBuffer &data = autosave.GetData();
|
||||||
|
|
||||||
|
// BIND SQL autosave
|
||||||
sqlite3_bind_blob(stmt, 1, dict.GetData(), dict.GetDataLen(), SQLITE_STATIC);
|
sqlite3_bind_blob(stmt, 1, dict.GetData(), dict.GetDataLen(), SQLITE_STATIC);
|
||||||
sqlite3_bind_blob(stmt, 2, data.GetData(), data.GetDataLen(), SQLITE_STATIC);
|
sqlite3_bind_blob(stmt, 2, data.GetData(), data.GetDataLen(), SQLITE_STATIC);
|
||||||
|
|
||||||
@ -1005,6 +1046,7 @@ bool ProjectFileIO::SaveProject(const FilePath &fileName)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BIND SQL project
|
||||||
sqlite3_bind_text(stmt, 1, doc, -1, SQLITE_STATIC);
|
sqlite3_bind_text(stmt, 1, doc, -1, SQLITE_STATIC);
|
||||||
|
|
||||||
rc = sqlite3_step(stmt);
|
rc = sqlite3_step(stmt);
|
||||||
|
@ -502,6 +502,7 @@ bool SampleBlock::Commit()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BIND SQL sampleblocks
|
||||||
sqlite3_bind_int(stmt, 1, mSampleFormat);
|
sqlite3_bind_int(stmt, 1, mSampleFormat);
|
||||||
sqlite3_bind_double(stmt, 2, mSumMin);
|
sqlite3_bind_double(stmt, 2, mSumMin);
|
||||||
sqlite3_bind_double(stmt, 3, mSumMax);
|
sqlite3_bind_double(stmt, 3, mSumMax);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user