mirror of
https://github.com/scummvm/scummvm-tools.git
synced 2026-05-21 05:40:44 +00:00
Strip trailing whitespaces.
svn-id: r51095
This commit is contained in:
@@ -14,7 +14,7 @@ For a more comprehensive changelog for the latest experimental SVN code, see:
|
||||
1.1.1 (2010-05-02)
|
||||
First tools version to contain a NEWS file.
|
||||
|
||||
- Improve the way the images are loaded for the tools GUI. It increases the chances of success.
|
||||
- Improve the way the images are loaded for the tools GUI. It increases the chances of success.
|
||||
- Fix bug #2984217: "Tools: The media directory is not intalled".
|
||||
- Fix bug #2905473: "GUI Tools: cannot use lame with compress_scumm_sou".
|
||||
- Patch #2982306: "set MP3 ABR bit rate in GUI Tools".
|
||||
|
||||
@@ -306,7 +306,7 @@ Script Tools:
|
||||
|
||||
"<version>" describes from which game the script file
|
||||
was taken and is one of "Gob1", "Gob2", "Gob3", "Ween",
|
||||
"Bargon", "Fascination, "Lost", "Woodruff", "Dynasty"
|
||||
"Bargon", "Fascination, "Lost", "Woodruff", "Dynasty"
|
||||
and "Urban".
|
||||
|
||||
If the script file calls loadMult(), the script file's
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@
|
||||
|
||||
namespace Common {
|
||||
|
||||
// The sgi IRIX MIPSpro Compiler has difficulties with nested templates.
|
||||
// The sgi IRIX MIPSpro Compiler has difficulties with nested templates.
|
||||
// This and the other __sgi conditionals below work around these problems.
|
||||
#ifdef __sgi
|
||||
template<class T> class IteratorImpl;
|
||||
|
||||
+14
-14
@@ -802,27 +802,27 @@ void CompressionTool::setMp3CompressionType(CompressionType type) {
|
||||
|
||||
void CompressionTool::setMp3MpegQuality(const std::string& arg) {
|
||||
lameparms.algqual = atoi(arg.c_str());
|
||||
|
||||
|
||||
if (lameparms.algqual == 0 && arg != "0")
|
||||
throw ToolException("Quality (-q) must be a number.");
|
||||
|
||||
|
||||
if (lameparms.algqual > 9)
|
||||
throw ToolException("Quality (-q) out of bounds, must be between 0 and 9.");
|
||||
}
|
||||
|
||||
void CompressionTool::setMp3TargetBitrate(const std::string& arg) {
|
||||
lameparms.targetBitr = atoi(arg.c_str());
|
||||
|
||||
|
||||
if (lameparms.targetBitr == 0 && arg != "0")
|
||||
throw ToolException("Target bitrate must be a number.");
|
||||
|
||||
|
||||
if (lameparms.targetBitr < 8 || lameparms.targetBitr > 160)
|
||||
throw ToolException("Target bitrate out of bounds, must be between 8 and 160.");
|
||||
}
|
||||
|
||||
void CompressionTool::setMp3MinBitrate(const std::string& arg) {
|
||||
lameparms.minBitr = atoi(arg.c_str());
|
||||
|
||||
|
||||
if (lameparms.minBitr == 0 && arg != "0")
|
||||
throw ToolException("Minimum bitrate (-b) must be a number.");
|
||||
|
||||
@@ -830,14 +830,14 @@ void CompressionTool::setMp3MinBitrate(const std::string& arg) {
|
||||
lameparms.minBitr -= lameparms.minBitr % 8;
|
||||
if (lameparms.minBitr > 64 && (lameparms.minBitr % 16) != 0)
|
||||
lameparms.minBitr -= lameparms.minBitr % 16;
|
||||
|
||||
|
||||
if (lameparms.minBitr < 8 || lameparms.minBitr > 160)
|
||||
throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160.");
|
||||
}
|
||||
|
||||
void CompressionTool::setMp3MaxBitrate(const std::string& arg) {
|
||||
lameparms.maxBitr = atoi(arg.c_str());
|
||||
|
||||
|
||||
if (lameparms.maxBitr == 0 && arg != "0")
|
||||
throw ToolException("Maximum bitrate (-B) must be a number.");
|
||||
|
||||
@@ -867,13 +867,13 @@ void CompressionTool::setMp3VBRQuality(const std::string& arg) {
|
||||
// flac
|
||||
void CompressionTool::setFlacCompressionLevel(const std::string& arg) {
|
||||
flacparms.compressionLevel = atoi(arg.c_str());
|
||||
|
||||
|
||||
if (flacparms.compressionLevel == 0 && arg != "0")
|
||||
throw ToolException("FLAC compression level must be a number.");
|
||||
|
||||
if (flacparms.compressionLevel < 0 || flacparms.compressionLevel > 8)
|
||||
throw ToolException("FLAC compression level ot of bounds, must be between 0 and 8.");
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CompressionTool::setFlacBlockSize(const std::string& arg) {
|
||||
@@ -886,10 +886,10 @@ void CompressionTool::setFlacBlockSize(const std::string& arg) {
|
||||
// vorbis
|
||||
void CompressionTool::setOggQuality(const std::string& arg) {
|
||||
oggparms.quality = (float)atoi(arg.c_str());
|
||||
|
||||
|
||||
if (oggparms.quality == 0. && arg != "0")
|
||||
throw ToolException("Quality (-q) must be a number.");
|
||||
|
||||
|
||||
if (oggparms.quality < 0. || oggparms.quality > 10.)
|
||||
throw ToolException("Quality out of bounds (-q), must be between 0 and 10.");
|
||||
}
|
||||
@@ -899,14 +899,14 @@ void CompressionTool::setOggMinBitrate(const std::string& arg) {
|
||||
|
||||
if (oggparms.minBitr == 0 && arg != "0")
|
||||
throw ToolException("Minimum bitrate (-m) must be a number.");
|
||||
|
||||
|
||||
if (oggparms.minBitr < 8 || oggparms.minBitr > 160)
|
||||
throw ToolException("Minimum bitrate out of bounds (-m), must be between 8 and 160.");
|
||||
}
|
||||
|
||||
void CompressionTool::setOggAvgBitrate(const std::string& arg) {
|
||||
oggparms.nominalBitr = atoi(arg.c_str());
|
||||
|
||||
|
||||
if (oggparms.nominalBitr == 0 && arg != "0")
|
||||
throw ToolException("Nominal bitrate (-b) must be a number.");
|
||||
|
||||
@@ -943,7 +943,7 @@ bool CompressionTool::processMp3Parms() {
|
||||
lameparms.type = CBR;
|
||||
setMp3TargetBitrate(_arguments.front());
|
||||
_arguments.pop_front();
|
||||
|
||||
|
||||
} else if (arg == "--lame-path") {
|
||||
if (_arguments.empty())
|
||||
throw ToolException("Could not parse command line options, expected value after --lame-path");
|
||||
|
||||
Vendored
+1
-1
@@ -5,7 +5,7 @@
|
||||
#define IDI_ICON1 101
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
|
||||
Vendored
+1
-1
@@ -5,7 +5,7 @@
|
||||
#define IDI_ICON1 101
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
|
||||
@@ -76,10 +76,10 @@ void MohawkArchive::open(Common::SeekableReadStream *stream) {
|
||||
error ("Could not find tag \'RSRC\'");
|
||||
|
||||
_rsrc.version = _mhk->readUint16BE();
|
||||
|
||||
|
||||
if (_rsrc.version != 0x100)
|
||||
error("Unsupported Mohawk resource version %d.%d", (_rsrc.version >> 8) & 0xff, _rsrc.version & 0xff);
|
||||
|
||||
|
||||
_rsrc.compaction = _mhk->readUint16BE(); // Only used in creation, not in reading
|
||||
_rsrc.filesize = _mhk->readUint32BE();
|
||||
_rsrc.abs_offset = _mhk->readUint32BE();
|
||||
@@ -412,9 +412,9 @@ MohawkOutputStream LivingBooksArchive_v1::getNextFile() {
|
||||
|
||||
MohawkArchive *MohawkArchive::createMohawkArchive(Common::SeekableReadStream *stream) {
|
||||
uint32 headerTag = stream->readUint32BE();
|
||||
|
||||
|
||||
MohawkArchive *mohawkArchive = 0;
|
||||
|
||||
|
||||
if (headerTag == ID_MHWK) {
|
||||
stream->readUint32BE(); // File size, ignore
|
||||
headerTag = stream->readUint32BE();
|
||||
@@ -426,7 +426,7 @@ MohawkArchive *MohawkArchive::createMohawkArchive(Common::SeekableReadStream *st
|
||||
// Assume the Living Books v1 archive format
|
||||
mohawkArchive = new LivingBooksArchive_v1();
|
||||
}
|
||||
|
||||
|
||||
stream->seek(0);
|
||||
|
||||
if (mohawkArchive)
|
||||
|
||||
@@ -183,7 +183,7 @@ class MohawkArchive {
|
||||
public:
|
||||
MohawkArchive();
|
||||
virtual ~MohawkArchive() { close(); }
|
||||
|
||||
|
||||
// Detect new/old Mohawk archive format. Return NULL if the file is neither.
|
||||
static MohawkArchive *createMohawkArchive(Common::SeekableReadStream *stream);
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
// Open the file as a Mohawk archive
|
||||
MohawkArchive *mohawkArchive = MohawkArchive::createMohawkArchive(new Common::File(file));
|
||||
|
||||
|
||||
if (!mohawkArchive) {
|
||||
printf("\'%s\' is not a valid Mohawk archive\n", argv[archiveArg]);
|
||||
fclose(file);
|
||||
|
||||
@@ -169,13 +169,13 @@ public:
|
||||
_eos(false) {
|
||||
assert(parentStream);
|
||||
}
|
||||
|
||||
|
||||
~SubReadStream() {
|
||||
if (_disposeParentStream) delete _parentStream;
|
||||
}
|
||||
|
||||
virtual bool eos() const { return _eos; }
|
||||
|
||||
|
||||
virtual uint32 read(void *dataPtr, uint32 dataSize) {
|
||||
if (dataSize > _end - _pos) {
|
||||
dataSize = _end - _pos;
|
||||
@@ -209,7 +209,7 @@ public:
|
||||
_parentStream->seek(_pos);
|
||||
_eos = false;
|
||||
}
|
||||
|
||||
|
||||
virtual uint32 pos() const { return _pos - _begin; }
|
||||
virtual uint32 size() const { return _end - _begin; }
|
||||
virtual bool eos() const { return _parentStream->eos(); }
|
||||
|
||||
@@ -165,7 +165,7 @@ void CompressScummSou::execute() {
|
||||
_input.open(inpath, "rb");
|
||||
_output_idx.open(TEMP_IDX, "wb");
|
||||
_output_snd.open(TEMP_DAT, "wb");
|
||||
|
||||
|
||||
_file_size = _input.size();
|
||||
|
||||
/* Get the 'SOU ....' header */
|
||||
|
||||
@@ -487,7 +487,7 @@ void CompressSword1::compressSpeech(const Common::Filename *inpath, const Common
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
switch (_format) {
|
||||
case AUDIO_MP3:
|
||||
sprintf(outFileName, "SPEECH%d.%s", i, "CL3");
|
||||
@@ -501,7 +501,7 @@ void CompressSword1::compressSpeech(const Common::Filename *inpath, const Common
|
||||
default:
|
||||
error("Unknown encoding method");
|
||||
}
|
||||
|
||||
|
||||
// Try opening in SPEECH sub-directory
|
||||
sprintf(outName, "%s/SPEECH/%s", outpath->getPath().c_str(), outFileName);
|
||||
try {
|
||||
@@ -529,7 +529,7 @@ void CompressSword1::compressSpeech(const Common::Filename *inpath, const Common
|
||||
void CompressSword1::compressMusic(const Common::Filename *inpath, const Common::Filename *outpath) {
|
||||
int i;
|
||||
char inName[256], outName[256], inFileName[12], outFileName[12];
|
||||
|
||||
|
||||
// check if output music directory exist and if we can create files in it
|
||||
sprintf(outName, "%s/MUSIC/compress_sword1_test_file", outpath->getPath().c_str());
|
||||
try {
|
||||
@@ -544,7 +544,7 @@ void CompressSword1::compressMusic(const Common::Filename *inpath, const Common:
|
||||
for (i = 0; i < TOTAL_TUNES; i++) {
|
||||
// Update the progress bar, we add 2 if we compress speech to, for those files
|
||||
updateProgress(i, TOTAL_TUNES +(_compSpeech? 2 : 0));
|
||||
|
||||
|
||||
// Get name of input file
|
||||
if (!_macVersion)
|
||||
sprintf(inFileName, "%s.WAV", musicNames[i].fileName);
|
||||
@@ -584,7 +584,7 @@ void CompressSword1::compressMusic(const Common::Filename *inpath, const Common:
|
||||
default:
|
||||
error("Unknown encoding method");
|
||||
}
|
||||
|
||||
|
||||
if (_useOutputMusicSubdir)
|
||||
sprintf(outName, "%s/MUSIC/%s", outpath->getPath().c_str(), outFileName);
|
||||
else
|
||||
@@ -647,7 +647,7 @@ void CompressSword1::checkFilesExist(bool checkSpeech, bool checkMusic, const Co
|
||||
We detect if we have a PC or Mac version with the music files (WAV for PC and AIF for Mac).
|
||||
If we have the Mac version or if we don't check the music files, an heuristic will be used
|
||||
when first accessing the speech file to detect if it is little endian or big endian */
|
||||
|
||||
|
||||
if (checkMusic) {
|
||||
for (i = 0; i < 20; i++) { /* Check the first 20 music files */
|
||||
// Check WAV file
|
||||
@@ -664,7 +664,7 @@ void CompressSword1::checkFilesExist(bool checkSpeech, bool checkMusic, const Co
|
||||
// Then try at root of input directory
|
||||
sprintf(fileName, "%s/%s.WAV", inpath->getPath().c_str(), musicNames[i].fileName);
|
||||
testFile = fopen(fileName, "rb");
|
||||
|
||||
|
||||
if (testFile) {
|
||||
musicFound = true;
|
||||
fclose(testFile);
|
||||
@@ -687,7 +687,7 @@ void CompressSword1::checkFilesExist(bool checkSpeech, bool checkMusic, const Co
|
||||
// Then try at root of input directory
|
||||
sprintf(fileName, "%s/%s.AIF", inpath->getPath().c_str(), musicNames[i].fileName);
|
||||
testFile = fopen(fileName, "rb");
|
||||
|
||||
|
||||
if (testFile) {
|
||||
musicFound = true;
|
||||
_macVersion = true;
|
||||
@@ -695,7 +695,7 @@ void CompressSword1::checkFilesExist(bool checkSpeech, bool checkMusic, const Co
|
||||
fclose(testFile);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (!musicFound) {
|
||||
|
||||
+2
-2
@@ -58,13 +58,13 @@ struct Configuration {
|
||||
* Sets all the compression members to default values based on the 'selectedPlatform' member
|
||||
*/
|
||||
void setPlatformDefaults();
|
||||
|
||||
|
||||
/**
|
||||
* Utility functions that test the given lame path.
|
||||
*
|
||||
* @return false indicate that the given lame path does not point to a valid lame executable.
|
||||
*/
|
||||
static bool isLamePathValid(const wxString& mp3LamePath);
|
||||
static bool isLamePathValid(const wxString& mp3LamePath);
|
||||
|
||||
// While prepending with _ would be in line with the coding conventions
|
||||
// this class is just a glorified map with different types, so it seems
|
||||
|
||||
+1
-1
@@ -274,7 +274,7 @@ void ScummToolsFrame::switchPage(WizardPage *next, SwitchToPage page) {
|
||||
while (_pages.size() > 1) {
|
||||
delete _pages.back();
|
||||
_pages.pop_back();
|
||||
|
||||
|
||||
}
|
||||
break;
|
||||
case PreviousPage:
|
||||
|
||||
+21
-21
@@ -132,25 +132,25 @@ wxWindow *IntroPage::CreatePanel(wxWindow *parent) {
|
||||
wxT("Welcome to the ScummVM extraction and compression utility.\nWhat do you want to do?")));
|
||||
|
||||
sizer->AddSpacer(15);
|
||||
|
||||
|
||||
wxFlexGridSizer *buttonSizer = new wxFlexGridSizer(2, 3, 10, 25);
|
||||
buttonSizer->SetFlexibleDirection(wxVERTICAL);
|
||||
|
||||
|
||||
// Compress button
|
||||
wxButton *compressButton = new wxButton(panel, ID_COMPRESS, wxT("Compress"));
|
||||
buttonSizer->Add(compressButton, wxSizerFlags().Expand());
|
||||
compressButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IntroPage::onClickCompress), NULL, this);
|
||||
|
||||
|
||||
// Extract button
|
||||
wxButton *extractButton = new wxButton(panel, ID_EXTRACT, wxT("Extract"));
|
||||
buttonSizer->Add(extractButton, wxSizerFlags().Expand());
|
||||
extractButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IntroPage::onClickExtract), NULL, this);
|
||||
|
||||
|
||||
// Advanced button
|
||||
wxButton *advancedButton = new wxButton(panel, ID_ADVANCED, wxT("Advanced"));
|
||||
buttonSizer->Add(advancedButton, wxSizerFlags().Expand());
|
||||
advancedButton->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(IntroPage::onClickAdvanced), NULL, this);
|
||||
|
||||
|
||||
// Compress Label
|
||||
wxStaticText *compressLabel = new wxStaticText(
|
||||
panel, wxID_ANY,
|
||||
@@ -159,7 +159,7 @@ wxWindow *IntroPage::CreatePanel(wxWindow *parent) {
|
||||
);
|
||||
compressLabel->Wrap(110);
|
||||
buttonSizer->Add(compressLabel, wxSizerFlags().Align(wxALIGN_CENTER_HORIZONTAL));
|
||||
|
||||
|
||||
// Extract Label
|
||||
wxStaticText *extractLabel = new wxStaticText(
|
||||
panel, wxID_ANY,
|
||||
@@ -168,7 +168,7 @@ wxWindow *IntroPage::CreatePanel(wxWindow *parent) {
|
||||
);
|
||||
extractLabel->Wrap(110);
|
||||
buttonSizer->Add(extractLabel, wxSizerFlags().Align(wxALIGN_CENTER_HORIZONTAL));
|
||||
|
||||
|
||||
// Advanced Label
|
||||
wxStaticText *advancedLabel = new wxStaticText(
|
||||
panel, wxID_ANY,
|
||||
@@ -177,7 +177,7 @@ wxWindow *IntroPage::CreatePanel(wxWindow *parent) {
|
||||
);
|
||||
advancedLabel->Wrap(110);
|
||||
buttonSizer->Add(advancedLabel, wxSizerFlags().Align(wxALIGN_CENTER_HORIZONTAL));
|
||||
|
||||
|
||||
sizer->Add(buttonSizer);
|
||||
SetAlignedSizer(panel, sizer);
|
||||
|
||||
@@ -824,7 +824,7 @@ void ChooseAudioFormatPage::onNext(wxWindow *panel) {
|
||||
else if (format->GetStringSelection() == wxT("MP3"))
|
||||
switchPage(new ChooseAudioOptionsMp3Page(_configuration));
|
||||
} else {
|
||||
|
||||
|
||||
// For MP3 we check if the lame path is valid otherwise we let the choice
|
||||
// tp the user to either change the audio format or to go to the MP3
|
||||
// options page (to set the lame path).
|
||||
@@ -833,12 +833,12 @@ void ChooseAudioFormatPage::onNext(wxWindow *panel) {
|
||||
!Configuration::isLamePathValid(_configuration.mp3LamePath)
|
||||
) {
|
||||
wxMessageDialog *msgDialog = new wxMessageDialog(
|
||||
NULL,
|
||||
NULL,
|
||||
wxT("The lame executable could not be found. It is needed to compress files to MP3. "
|
||||
"You can either proceed to the advanced audio settings page and give the path to lame "
|
||||
"or you can select another audio format to compress to.\n\n"
|
||||
"Do you want to proceed to the advanced audio settings page?"),
|
||||
wxT("lame not found"),
|
||||
wxT("lame not found"),
|
||||
wxYES_NO | wxNO_DEFAULT | wxICON_EXCLAMATION
|
||||
);
|
||||
int retval = msgDialog->ShowModal();
|
||||
@@ -846,7 +846,7 @@ void ChooseAudioFormatPage::onNext(wxWindow *panel) {
|
||||
switchPage(new ChooseAudioOptionsMp3Page(_configuration));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
switchPage(new ProcessPage(_configuration));
|
||||
}
|
||||
}
|
||||
@@ -860,7 +860,7 @@ ChooseAudioOptionsMp3Page::ChooseAudioOptionsMp3Page(Configuration &config)
|
||||
|
||||
wxWindow *ChooseAudioOptionsMp3Page::CreatePanel(wxWindow *parent) {
|
||||
wxWindow *panel = WizardPage::CreatePanel(parent);
|
||||
|
||||
|
||||
wxSizer *sizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
/*
|
||||
@@ -889,7 +889,7 @@ wxWindow *ChooseAudioOptionsMp3Page::CreatePanel(wxWindow *parent) {
|
||||
wxFLP_USE_TEXTCTRL | wxFLP_OPEN, wxDefaultValidator,
|
||||
wxT("LamePath")
|
||||
);
|
||||
|
||||
|
||||
_gridSizer->Add(lamePicker, wxSizerFlags().Expand());
|
||||
|
||||
// Type of compression
|
||||
@@ -990,7 +990,7 @@ wxWindow *ChooseAudioOptionsMp3Page::CreatePanel(wxWindow *parent) {
|
||||
|
||||
void ChooseAudioOptionsMp3Page::save(wxWindow *panel) {
|
||||
wxFilePickerCtrl *lamePath = static_cast<wxFilePickerCtrl *>(panel->FindWindowByName(wxT("LamePath")));
|
||||
|
||||
|
||||
wxRadioButton *abr = static_cast<wxRadioButton *>(panel->FindWindowByName(wxT("ABR")));
|
||||
wxChoice *mpegQuality = static_cast<wxChoice *>(panel->FindWindowByName(wxT("MpegQuality")));
|
||||
|
||||
@@ -1018,7 +1018,7 @@ void ChooseAudioOptionsMp3Page::updateFields(wxWindow *panel) {
|
||||
_gridSizer->Show(_vbrMaxBitrateLabel, !isAbrSelected);
|
||||
_gridSizer->Show(_vbrQuality, !isAbrSelected);
|
||||
_gridSizer->Show(_vbrQualityLabel, !isAbrSelected);
|
||||
|
||||
|
||||
_gridSizer->Layout();
|
||||
}
|
||||
|
||||
@@ -1035,17 +1035,17 @@ void ChooseAudioOptionsMp3Page::onNext(wxWindow *panel) {
|
||||
wxFilePickerCtrl *lamePath = static_cast<wxFilePickerCtrl *>(panel->FindWindowByName(wxT("LamePath")));
|
||||
if (!Configuration::isLamePathValid(lamePath->GetPath())) {
|
||||
wxMessageDialog *msgDialog = new wxMessageDialog(
|
||||
NULL,
|
||||
NULL,
|
||||
wxT("The lame executable could not be found. It is needed to compress files to MP3. "
|
||||
"If you want to use MP3 compression you need to select a valid lame executable. "
|
||||
"Otherwise you can go back to the audio format selection and select another format."),
|
||||
wxT("lame not found"),
|
||||
wxT("lame not found"),
|
||||
wxOK | wxICON_EXCLAMATION
|
||||
);
|
||||
msgDialog->ShowModal();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
switchPage(new ProcessPage(_configuration));
|
||||
}
|
||||
|
||||
@@ -1268,7 +1268,7 @@ wxWindow *ProcessPage::CreatePanel(wxWindow *parent) {
|
||||
_gauge = new wxGauge(panel, wxID_ANY, _output.total, wxDefaultPosition, wxDefaultSize,
|
||||
wxGA_HORIZONTAL, wxDefaultValidator, wxT("ProgressBar"));
|
||||
sizer->Add(_gauge, wxSizerFlags(0).Expand().Border(wxBOTTOM | wxLEFT | wxRIGHT, 10));
|
||||
|
||||
|
||||
_finishText = new wxStaticText(panel, wxID_ANY, wxString());
|
||||
sizer->Add(_finishText, wxSizerFlags().Expand().Border(wxLEFT, 20));
|
||||
|
||||
@@ -1515,7 +1515,7 @@ wxWindow *FinishPage::CreatePanel(wxWindow *parent) {
|
||||
0, wxDefaultValidator, wxT("DisplayOutput"));
|
||||
displayOut->SetValue(true);
|
||||
sizer->Add(displayOut);
|
||||
|
||||
|
||||
sizer->AddSpacer(10);
|
||||
|
||||
wxCheckBox *processOther = new wxCheckBox(panel, wxID_ANY, wxT("Process another file"), wxDefaultPosition, wxDefaultSize,
|
||||
|
||||
@@ -17,12 +17,12 @@ Offset Size Type Description
|
||||
0x016 20 ASCII String for MT-32 Display (" CAMELOT, CAMELOT! ")
|
||||
0x02a 20 ASCII String for MT-32 Display ("Ham & Jam & SpamAlot")
|
||||
0x03e 2 word MT-32 Master Volume
|
||||
0x040 1 Index in Predefined reverb settings at 0x04c (0-10)
|
||||
0x040 1 Index in Predefined reverb settings at 0x04c (0-10)
|
||||
0x041 11 MT-32 SysEx block setting reverb
|
||||
(last 3 bytes are dummies)
|
||||
0x04c 3 Predefined reverb setting #1 (Mode, Time, Level)
|
||||
: : :
|
||||
0x06a 3 Predefined reverb setting #11
|
||||
0x06a 3 Predefined reverb setting #11
|
||||
0x06d 8 MT-32 Patch Memory #1 (see Patch Memory description below)
|
||||
: : :
|
||||
0x1e5 8 MT-32 Patch Memory #48
|
||||
@@ -31,7 +31,7 @@ Offset Size Type Description
|
||||
|
||||
|
||||
Patch Memory description
|
||||
|
||||
|
||||
Offset Description
|
||||
--------------------------------------------------------------------
|
||||
0x00 Timbre Group (0 = Bank A, 1 = Bank B, 2 = Memory, 3 = Rythm)
|
||||
@@ -46,7 +46,7 @@ Offset Size Type Description
|
||||
|
||||
Mapping MT-32 to GM instruments is done with Timbre Group and
|
||||
Timbre Number.
|
||||
|
||||
|
||||
Instrument 0-63: Bank A, 0-63
|
||||
Instrument 64-127: Bank B, 0-63
|
||||
|
||||
@@ -62,7 +62,7 @@ Offset Size Type Description
|
||||
|
||||
|
||||
Timbre Memory description
|
||||
|
||||
|
||||
Offset Size Description
|
||||
-----------------------------------------------------------------------
|
||||
0x00 10 Timbre Name (ASCII String)
|
||||
@@ -86,14 +86,14 @@ Offset Size Description
|
||||
System Area - Partial Reserve, offset relative to 0x370 + n * 246
|
||||
|
||||
Offset Size Description
|
||||
---------------------------------------------------
|
||||
---------------------------------------------------
|
||||
0x000 2 0xdc 0xba (if this this is not present
|
||||
this block is non existent)
|
||||
0x002 4 Rythm Setup for Key #24 (see below)
|
||||
: : :
|
||||
: : :
|
||||
0x0fe 4 Rythm Setup for Key #87
|
||||
0x102 9 System Area - Partial Reserve
|
||||
---------------------------------------------------
|
||||
---------------------------------------------------
|
||||
|
||||
Rythm Setup description
|
||||
See http://members.xoom.com/_XMCM/TomLewandowski/lapc1.txt
|
||||
|
||||
@@ -9,10 +9,10 @@ Quest for Glory II: Trial by Fire (QfG2)
|
||||
Christmas greeting card 1990 (CC1990)
|
||||
|
||||
The magic number (84 00) is left out, offset 0 is directly after these two
|
||||
bytes.
|
||||
bytes.
|
||||
|
||||
If you examine a SCI01 sound resource use "sciunpack --without-header" to
|
||||
get the pointers within the file correct for your hex viewer.
|
||||
get the pointers within the file correct for your hex viewer.
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
@@ -20,7 +20,7 @@ DESCRIPTION
|
||||
The SCI01 sound resource consists of a number of track lists and the
|
||||
tracks themselves. There is one track list for (almost) every piece of
|
||||
sound hardware supported by the game. Each track either contains track
|
||||
data for one specific channel or a digital sample.
|
||||
data for one specific channel or a digital sample.
|
||||
|
||||
SCI1 resources are the same, except that sample chunks are no longer
|
||||
allowed (since they are now separate resources).
|
||||
@@ -112,7 +112,7 @@ allowed (since they are now separate resources).
|
||||
This chunk begins with a 2 byte header. The low nibble of the
|
||||
first byte indicates the channel number. The high nibble controls
|
||||
certain aspects of (dynamic) track channel/hardware channel mapping.
|
||||
|
||||
|
||||
The second byte tells us how many notes will be
|
||||
playing simultaneously in the channel. From the third byte onward
|
||||
is the MIDI track data which looks just like normal SCI0 MIDI
|
||||
@@ -128,7 +128,7 @@ offset data description
|
||||
0001 00 Track list continuation
|
||||
0002 00 Same hardware device
|
||||
0003 003F Data Chunk pointer (Little Endian)
|
||||
0005 0013 Data Chunk length (LE)
|
||||
0005 0013 Data Chunk length (LE)
|
||||
0007 00 Track list continuation
|
||||
0008 00 Same hardware device
|
||||
0009 006A Data Chunk pointer (LE)
|
||||
@@ -176,7 +176,7 @@ offset data description
|
||||
0041 MIDI Track data like SCI0
|
||||
0052 02 MIDI Track channel 2
|
||||
0053 02 Two notes playing on track
|
||||
0054 MIDI Track data like SCI0
|
||||
0054 MIDI Track data like SCI0
|
||||
006A 03 MIDI Track channel 3
|
||||
006B 01 One note playing on track
|
||||
006C MIDI Track data like SCI0
|
||||
@@ -195,7 +195,7 @@ reported.
|
||||
|
||||
Absolute cues are generally stored in the signal selector, and
|
||||
cumulative cues are generally stored in the dataInc selector, with
|
||||
some interesting twists:
|
||||
some interesting twists:
|
||||
|
||||
1. The server's record of the absolute cue value is reset as part of
|
||||
UPDATE_CUES.
|
||||
|
||||
Reference in New Issue
Block a user