[Scummvm-git-logs] scummvm master -> ca702b0928f7dda7acda57dc9e105b468801561e

sev- noreply at scummvm.org
Thu Jun 25 20:01:59 UTC 2026


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
97029b4b49 DIRECTOR: Better debug messages for unhandled MCI commands
ca702b0928 JANITORIAL: Fix indentation


Commit: 97029b4b492e1831c81794ebabec167246626327
    https://github.com/scummvm/scummvm/commit/97029b4b492e1831c81794ebabec167246626327
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-06-25T22:01:43+02:00

Commit Message:
DIRECTOR: Better debug messages for unhandled MCI commands

Changed paths:
    engines/director/lingo/lingo-mci.cpp


diff --git a/engines/director/lingo/lingo-mci.cpp b/engines/director/lingo/lingo-mci.cpp
index 0cc7529f529..e7e139daf35 100644
--- a/engines/director/lingo/lingo-mci.cpp
+++ b/engines/director/lingo/lingo-mci.cpp
@@ -471,7 +471,7 @@ void Lingo::func_mci(const Common::String &name) {
         break;
 
     default:
-        warning("func_mci: Unhandled MCI command: %d", parsedCmd.id); /* TODO: Convert MCITokenType into string */
+        warning("func_mci: Unhandled MCI command: %d (%s)", parsedCmd.id, name.c_str()); /* TODO: Convert MCITokenType into string */
     }
 }
 


Commit: ca702b0928f7dda7acda57dc9e105b468801561e
    https://github.com/scummvm/scummvm/commit/ca702b0928f7dda7acda57dc9e105b468801561e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-06-25T22:01:43+02:00

Commit Message:
JANITORIAL: Fix indentation

Changed paths:
    engines/director/lingo/lingo-mci.cpp


diff --git a/engines/director/lingo/lingo-mci.cpp b/engines/director/lingo/lingo-mci.cpp
index e7e139daf35..c845f4de8c4 100644
--- a/engines/director/lingo/lingo-mci.cpp
+++ b/engines/director/lingo/lingo-mci.cpp
@@ -39,444 +39,450 @@
 namespace Director {
 
 enum MCITokenType {
-    MCI_PLAY,
-    MCI_OPEN,
-    MCI_CLOSE,
-    MCI_STATUS,
-    MCI_RECORD,
-    MCI_SEEK,
-    MCI_STOP,
-    MCI_PAUSE,
-    MCI_GETDEVCAPS,
-    MCI_SYSINFO,
-    MCI_BREAK,
-    MCI_SOUND,
-    MCI_SAVE,
-    MCI_LOAD,
-    MCI_RESUME,
-    MCI_SET,
-    MCI_INFO,
+	MCI_PLAY,
+	MCI_OPEN,
+	MCI_CLOSE,
+	MCI_STATUS,
+	MCI_RECORD,
+	MCI_SEEK,
+	MCI_STOP,
+	MCI_PAUSE,
+	MCI_GETDEVCAPS,
+	MCI_SYSINFO,
+	MCI_BREAK,
+	MCI_SOUND,
+	MCI_SAVE,
+	MCI_LOAD,
+	MCI_RESUME,
+	MCI_SET,
+	MCI_INFO,
 };
 
 
 enum MCIDataType {
-    MCI_COMMAND_HEAD,
-    MCI_END_COMMAND,
-    MCI_END_COMMAND_LIST,
-    MCI_CONSTANT,
-    MCI_END_CONSTANT,
-    MCI_RETURN,
-
-    MCI_FLAG,
-    MCI_INTEGER,
-    MCI_STRING,
-    MCI_RECT,
-    MCI_DWORD_PTR,
+	MCI_COMMAND_HEAD,
+	MCI_END_COMMAND,
+	MCI_END_COMMAND_LIST,
+	MCI_CONSTANT,
+	MCI_END_CONSTANT,
+	MCI_RETURN,
+
+	MCI_FLAG,
+	MCI_INTEGER,
+	MCI_STRING,
+	MCI_RECT,
+	MCI_DWORD_PTR,
 };
 
 typedef struct MCITokenData {
-    MCIDataType type;
-    Common::String string;
-    int integer = 0;
+	MCIDataType type;
+	Common::String string;
+	int integer = 0;
 } MCITokenData;
 
 typedef struct MCICommand {
-    MCITokenType id;
-    uint flags = 0;
-    Common::String device; /* MCI device name */
-    Common::HashMap<Common::String, MCITokenData> parameters;
+	MCITokenType id;
+	uint flags = 0;
+	Common::String device; /* MCI device name */
+	Common::HashMap<Common::String, MCITokenData> parameters;
 } MCICommand;
 
 enum MCIError {
-    MCIERR_NO_ERROR,
-    MCIERR_UNRECOGNISED_COMMAND,
-    MCIERR_STRING_PARSE,
+	MCIERR_NO_ERROR,
+	MCIERR_UNRECOGNISED_COMMAND,
+	MCIERR_STRING_PARSE,
 };
 
 struct CmdTableRow {
-    const char *keystr;
-    int flag;
-    int num;
-    MCIDataType data_type;
+	const char *keystr;
+	int flag;
+	int num;
+	MCIDataType data_type;
 };
 
 static const CmdTableRow table[] = {
-  {"open"            ,MCI_OPEN      ,0          ,MCI_COMMAND_HEAD },
-  {""                ,MCI_INTEGER   ,0          ,MCI_RETURN }      ,
-  {"notify"          ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  {"wait"            ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  {"type"            ,0x00002000L   ,-1         ,MCI_STRING }      ,
-  {"element"         ,0x00000200L   ,-1         ,MCI_STRING }      ,
-  {"alias"           ,0x00000400L   ,-1         ,MCI_STRING }      ,
-  {"shareable"       ,0x00000100L   ,-1         ,MCI_FLAG }        ,
-  {""                ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  {"close"           ,MCI_CLOSE     ,0          ,MCI_COMMAND_HEAD },
-  {"notify"          ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  {"wait"            ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  {""                ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  {"play"            ,MCI_PLAY      ,0          ,MCI_COMMAND_HEAD },
-  {"notify"          ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  {"wait"            ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  {"from"            ,0x00000004L   ,-1         ,MCI_INTEGER }     ,
-  {"to"              ,0x00000008L   ,-1         ,MCI_INTEGER }     ,
-  {""                ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  {"status"          ,MCI_STATUS    ,0          ,MCI_COMMAND_HEAD },
-  {""                ,MCI_DWORD_PTR ,0          ,MCI_RETURN }      ,
-  {"notify"          ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  {"wait"            ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  {""                ,0x00000100L   ,-1         ,MCI_CONSTANT }    ,
-  {"position"        ,0x00000002L   ,-1         ,MCI_INTEGER }     ,
-  {"length"          ,0x00000001L   ,-1         ,MCI_INTEGER }     ,
-  {"number of tracks",-1            ,0x00000003L,MCI_INTEGER }     ,
-  {"ready"           ,0x00000007L   ,-1         ,MCI_INTEGER }     ,
-  {"mode"            ,0x00000004L   ,-1         ,MCI_INTEGER }     ,
-  {"time format"     ,-1            ,0x00000006L,MCI_INTEGER }     ,
-  {"current track"   ,-1            ,0x00000008L,MCI_INTEGER }     ,
-  {""                ,0x00000000L   ,-1         ,MCI_END_CONSTANT },
-  { "track"          ,0x00000010L   ,-1         ,MCI_INTEGER }     ,
-  { "start"          ,0x00000200L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "record"         ,MCI_RECORD    ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { "from"           ,0x00000004L   ,-1         ,MCI_INTEGER }     ,
-  { "to"             ,0x00000008L   ,-1         ,MCI_INTEGER }     ,
-  { "insert"         ,0x00000100L   ,-1         ,MCI_FLAG }        ,
-  { "overwrite"      ,0x00000200L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "seek"           ,MCI_SEEK      ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { "to start"       ,0x00000100L   ,-1         ,MCI_FLAG }        ,
-  { "to end"         ,0x00000200L   ,-1         ,MCI_FLAG }        ,
-  { "to"             ,0x00000008L   ,-1         ,MCI_INTEGER }     ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "stop"           ,MCI_STOP      ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "pause"          ,MCI_PAUSE     ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "capability"     ,MCI_GETDEVCAPS,0          ,MCI_COMMAND_HEAD },
-  { ""               ,MCI_INTEGER   ,0          ,MCI_RETURN }      ,
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000100L   ,-1         ,MCI_CONSTANT }    ,
-  { "can record"     ,0x00000001L   ,-1         ,MCI_INTEGER }     ,
-  { "has audio"      ,0x00000002L   ,-1         ,MCI_INTEGER }     ,
-  { "has video"      ,0x00000003L   ,-1         ,MCI_INTEGER }     ,
-  { "uses files"     ,0x00000005L   ,-1         ,MCI_INTEGER }     ,
-  { "compound device",0x00000006L   ,-1         ,MCI_INTEGER }     ,
-  { "device type"    ,0x00000004L   ,-1         ,MCI_INTEGER }     ,
-  { "can eject"      ,0x00000007L   ,-1         ,MCI_INTEGER }     ,
-  { "can play"       ,0x00000008L   ,-1         ,MCI_INTEGER }     ,
-  { "can save"       ,0x00000009L   ,-1         ,MCI_INTEGER }     ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_CONSTANT },
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "info"           ,MCI_INFO      ,0          ,MCI_COMMAND_HEAD },
-  { ""               ,MCI_STRING    ,0          ,MCI_RETURN }      ,
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { "product"        ,0x00000100L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "set"            ,MCI_SET       ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { "time format"    ,0x00000400L   ,-1         ,MCI_CONSTANT }    ,
-  { "milliseconds"   ,0x00000000L   ,-1         ,MCI_INTEGER }     ,
-  { "ms"             ,0x00000000L   ,-1         ,MCI_INTEGER }     ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_CONSTANT },
-  { "door open"      ,0x00000100L   ,-1         ,MCI_FLAG }        ,
-  { "door closed"    ,0x00000200L   ,-1         ,MCI_FLAG }        ,
-  { "audio"          ,0x00000800L   ,-1         ,MCI_CONSTANT }    ,
-  { "all"            ,0x00000000L   ,-1         ,MCI_INTEGER }     ,
-  { "left"           ,0x00000001L   ,-1         ,MCI_INTEGER }     ,
-  { "right"          ,0x00000002L   ,-1         ,MCI_INTEGER }     ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_CONSTANT },
-  { "video"          ,0x00001000L   ,-1         ,MCI_FLAG }        ,
-  { "on"             ,0x00002000L   ,-1         ,MCI_FLAG }        ,
-  { "off"            ,0x00004000L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "sysinfo"        ,MCI_SYSINFO   ,0          ,MCI_COMMAND_HEAD },
-  { ""               ,MCI_STRING    ,0          ,MCI_RETURN }      ,
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { "quantity"       ,0x00000100L   ,-1         ,MCI_FLAG }        ,
-  { "open"           ,0x00000200L   ,-1         ,MCI_FLAG }        ,
-  { "installname"    ,0x00000800L   ,-1         ,MCI_FLAG }        ,
-  { "name"           ,0x00000400L   ,-1         ,MCI_INTEGER }     ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "break"          ,MCI_BREAK     ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { "on"             ,0x00000100L   ,-1         ,MCI_INTEGER }     ,
-  { "off"            ,0x00000400L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "sound"          ,MCI_SOUND     ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "save"           ,MCI_SAVE      ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000100L   ,-1         ,MCI_STRING }      ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "load"           ,MCI_LOAD      ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000100L   ,-1         ,MCI_STRING }      ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-
-  { "resume"         ,MCI_RESUME    ,0          ,MCI_COMMAND_HEAD },
-  { "notify"         ,0x00000001L   ,-1         ,MCI_FLAG }        ,
-  { "wait"           ,0x00000002L   ,-1         ,MCI_FLAG }        ,
-  { ""               ,0x00000000L   ,-1         ,MCI_END_COMMAND } ,
-  };
+	{"open"			,MCI_OPEN		,0			,MCI_COMMAND_HEAD},
+	{""				,MCI_INTEGER	,0			,MCI_RETURN},
+	{"device"		,0x00000001L	,-1			,MCI_STRING},
+	{"elementname"	,0x00000002L	,-1			,MCI_STRING},
+	{"alias"		,0x00000400L	,-1			,MCI_STRING},
+	{"type"			,0x00002000L	,-1			,MCI_STRING},
+	{"shareable"	,0x00000100L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"type"			,0x00002000L	,-1			,MCI_STRING},
+	{"element"		,0x00000200L	,-1			,MCI_STRING},
+	{"alias"		,0x00000400L	,-1			,MCI_STRING},
+	{"shareable"	,0x00000100L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"close"		,MCI_CLOSE		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"play"			,MCI_PLAY		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"from"			,0x00000004L	,-1			,MCI_INTEGER},
+	{"to"			,0x00000008L	,-1			,MCI_INTEGER},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"status"		,MCI_STATUS		,0			,MCI_COMMAND_HEAD},
+	{""				,MCI_DWORD_PTR	,0			,MCI_RETURN},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000100L	,-1			,MCI_CONSTANT},
+	{"position"		,0x00000002L	,-1			,MCI_INTEGER},
+	{"length"		,0x00000001L	,-1			,MCI_INTEGER},
+	{"number of tracks",-1			,0x00000003L,MCI_INTEGER},
+	{"ready"		,0x00000007L	,-1			,MCI_INTEGER},
+	{"mode"			,0x00000004L	,-1			,MCI_INTEGER},
+	{"time format"	,-1				,0x00000006L,MCI_INTEGER},
+	{"current track",-1				,0x00000008L,MCI_INTEGER},
+	{""				,0x00000000L	,-1			,MCI_END_CONSTANT},
+	{"track"		,0x00000010L	,-1			,MCI_INTEGER},
+	{"start"		,0x00000200L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"record"		,MCI_RECORD		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"from"			,0x00000004L	,-1			,MCI_INTEGER},
+	{"to"			,0x00000008L	,-1			,MCI_INTEGER},
+	{"insert"		,0x00000100L	,-1			,MCI_FLAG},
+	{"overwrite"	,0x00000200L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"seek"			,MCI_SEEK		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"to start"		,0x00000100L	,-1			,MCI_FLAG},
+	{"to end"		,0x00000200L	,-1			,MCI_FLAG},
+	{"to"			,0x00000008L	,-1			,MCI_INTEGER},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"stop"			,MCI_STOP		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"pause"		,MCI_PAUSE		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"capability"	,MCI_GETDEVCAPS	,0			,MCI_COMMAND_HEAD},
+	{""				,MCI_INTEGER	,0			,MCI_RETURN},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000100L	,-1			,MCI_CONSTANT},
+	{"can record"	,0x00000001L	,-1			,MCI_INTEGER},
+	{"has audio"	,0x00000002L	,-1			,MCI_INTEGER},
+	{"has video"	,0x00000003L	,-1			,MCI_INTEGER},
+	{"uses files"	,0x00000005L	,-1			,MCI_INTEGER},
+	{"compound device",0x00000006L	,-1			,MCI_INTEGER},
+	{"device type"	,0x00000004L	,-1			,MCI_INTEGER},
+	{"can eject"	,0x00000007L	,-1			,MCI_INTEGER},
+	{"can play"		,0x00000008L	,-1			,MCI_INTEGER},
+	{"can save"		,0x00000009L	,-1			,MCI_INTEGER},
+	{""				,0x00000000L	,-1			,MCI_END_CONSTANT},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"info"			,MCI_INFO		,0			,MCI_COMMAND_HEAD},
+	{""				,MCI_STRING		,0			,MCI_RETURN},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"product"		,0x00000100L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"set"			,MCI_SET		,0		,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"time format"	,0x00000400L	,-1			,MCI_CONSTANT},
+	{"milliseconds"	,0x00000000L	,-1			,MCI_INTEGER},
+	{"ms"			,0x00000000L	,-1			,MCI_INTEGER},
+	{""				,0x00000000L	,-1			,MCI_END_CONSTANT},
+	{"door open"	,0x00000100L	,-1			,MCI_FLAG},
+	{"door closed"	,0x00000200L	,-1			,MCI_FLAG},
+	{"audio"		,0x00000800L	,-1			,MCI_CONSTANT},
+	{"all"			,0x00000000L	,-1			,MCI_INTEGER},
+	{"left"			,0x00000001L	,-1			,MCI_INTEGER},
+	{"right"		,0x00000002L	,-1			,MCI_INTEGER},
+	{""				,0x00000000L	,-1			,MCI_END_CONSTANT},
+	{"video"		,0x00001000L	,-1			,MCI_FLAG},
+	{"on"			,0x00002000L	,-1			,MCI_FLAG},
+	{"off"			,0x00004000L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"sysinfo"		,MCI_SYSINFO	,0			,MCI_COMMAND_HEAD},
+	{""				,MCI_STRING		,0			,MCI_RETURN},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"quantity"		,0x00000100L	,-1			,MCI_FLAG},
+	{"open"			,0x00000200L	,-1			,MCI_FLAG},
+	{"installname"	,0x00000800L	,-1			,MCI_FLAG},
+	{"name"			,0x00000400L	,-1			,MCI_INTEGER},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"break"		,MCI_BREAK		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{"on"			,0x00000100L	,-1			,MCI_INTEGER},
+	{"off"			,0x00000400L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"sound"		,MCI_SOUND		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"save"			,MCI_SAVE		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000100L	,-1			,MCI_STRING},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"load"			,MCI_LOAD		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000100L	,-1			,MCI_STRING},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+
+	{"resume"		,MCI_RESUME		,0			,MCI_COMMAND_HEAD},
+	{"notify"		,0x00000001L	,-1			,MCI_FLAG},
+	{"wait"			,0x00000002L	,-1			,MCI_FLAG},
+	{""				,0x00000000L	,-1			,MCI_END_COMMAND},
+};
 
 static MCIError getString(const Common::String &name, uint &idx, Common::String &str) {
-    uint i_end;
-
-    if (name[idx] == '"' || name[idx] == '\'') { /* Quoted string */
-        char quote = name[idx];
-        i_end = name.findFirstOf(quote, idx + 1);
-        if (i_end == Common::String::npos) {
-            return MCIERR_STRING_PARSE; /* Unterminated string */
-        }
-        str = name.substr(idx + 1, i_end - idx - 1);
-        idx = i_end + 2;
-    } else { /* No quotes, so just find the next space */
-        i_end = name.findFirstOf(' ', idx);
-        if (i_end == Common::String::npos) {
-            i_end = name.size();
-        }
-
-        str = name.substr(idx, i_end - idx);
-        idx = i_end + 1;
-    }
-
-    debugC(5, kDebugLingoExec, "get_string(): Got string \"%s\"", str.c_str());
-    return MCIERR_NO_ERROR;
+	uint i_end;
+
+	if (name[idx] == '"' || name[idx] == '\'') { /* Quoted string */
+		char quote = name[idx];
+		i_end = name.findFirstOf(quote, idx + 1);
+		if (i_end == Common::String::npos) {
+			return MCIERR_STRING_PARSE; /* Unterminated string */
+		}
+		str = name.substr(idx + 1, i_end - idx - 1);
+		idx = i_end + 2;
+	} else { /* No quotes, so just find the next space */
+		i_end = name.findFirstOf(' ', idx);
+		if (i_end == Common::String::npos) {
+			i_end = name.size();
+		}
+
+		str = name.substr(idx, i_end - idx);
+		idx = i_end + 1;
+	}
+
+	debugC(5, kDebugLingoExec, "get_string(): Got string \"%s\"", str.c_str());
+	return MCIERR_NO_ERROR;
 }
 
 static void createTokenList(Common::StringArray &tokenList, const Common::String &name) {
-    uint idx = 0;
+	uint idx = 0;
 
-    while (idx < name.size()) {
-        Common::String str;
-        MCIError err = getString(name, idx, str);
+	while (idx < name.size()) {
+		Common::String str;
+		MCIError err = getString(name, idx, str);
 
-        if (err != MCIERR_NO_ERROR) {
-            break;
-        }
-        tokenList.push_back(str);
-    }
+		if (err != MCIERR_NO_ERROR) {
+			break;
+		}
+		tokenList.push_back(str);
+	}
 }
 
 static MCIError parseMCICommand(const Common::String &name, MCICommand &parsedCmd) {
-    Common::StringArray token_list;
-    createTokenList(token_list, name);
-
-    uint i_token = 0;
-    int i_table = 0;
-    int tableStart = -1, tableEnd = -1;
-
-    Common::String &verb = token_list[0];
-
-    /* Find the table section corresponding to the command's verb. */
-    for (auto& cmd : table) {
-        if ((tableStart < 0) && (cmd.data_type == MCI_COMMAND_HEAD) && (cmd.keystr == verb)) {
-            tableStart = i_table;
-        } else if ((tableStart >= 0) && (cmd.data_type == MCI_END_COMMAND)) {
-            tableEnd = i_table;
-            break;
-        }
-        i_table++;
-    }
-
-    debugC(5, kDebugLingoExec, "parseMCICommand(): tableStart: %d, tableEnd: %d", tableStart, tableEnd);
-    if (tableStart == -1 || tableEnd == -1) {
-        warning("parseMCICommand(): Verb %s not found in table", verb.c_str());
+	Common::StringArray token_list;
+	createTokenList(token_list, name);
+
+	uint i_token = 0;
+	int i_table = 0;
+	int tableStart = -1, tableEnd = -1;
+
+	Common::String &verb = token_list[0];
+
+	/* Find the table section corresponding to the command's verb. */
+	for (auto& cmd : table) {
+		if ((tableStart < 0) && (cmd.data_type == MCI_COMMAND_HEAD) && (cmd.keystr == verb)) {
+			tableStart = i_table;
+		} else if ((tableStart >= 0) && (cmd.data_type == MCI_END_COMMAND)) {
+			tableEnd = i_table;
+			break;
+		}
+		i_table++;
+	}
+
+	debugC(5, kDebugLingoExec, "parseMCICommand(): tableStart: %d, tableEnd: %d", tableStart, tableEnd);
+	if (tableStart == -1 || tableEnd == -1) {
+		warning("parseMCICommand(): Verb %s not found in table", verb.c_str());
 		return MCIERR_UNRECOGNISED_COMMAND;
 	}
 
-    auto cmd = table[tableStart];
-    parsedCmd.id = (MCITokenType)cmd.flag;
-    parsedCmd.flags = cmd.num;
-
-    /* The MCI device will ALWAYS be the second token. */
-    parsedCmd.device = token_list[1];
-
-    /* Parse the rest of the arguments */
-    i_token = 2;
-
-    while (i_token < token_list.size()) {
-        bool found = false;
-        bool inConst = false;
-        int flag, cflag = 0;
-        const CmdTableRow *cmdtable, *c_cmdtable = nullptr;
-        auto& token = token_list[i_token];
-
-        for (i_table = tableStart; i_table < tableEnd; i_table++) {
-            MCIDataType cmd_type = table[i_table].data_type;
-            flag = table[i_table].flag;
-            cmdtable = &table[i_table];
-
-            switch (cmd_type) {
-            case MCI_CONSTANT:
-                c_cmdtable = cmdtable;
-                inConst = true;
-                cflag = flag;
-                break;
-
-            case MCI_END_CONSTANT:
-                c_cmdtable = nullptr;
-                inConst = false;
-                cflag = 0;
-                break;
-
-            default:
-                break;
-            }
-
-            if (token != table[i_table].keystr)
-                continue;
-
-            found = true;
-
-            switch (cmd_type) {
-            case MCI_COMMAND_HEAD:
-            case MCI_RETURN:
-            case MCI_END_COMMAND:
-            case MCI_END_COMMAND_LIST:
-            case MCI_CONSTANT:
-            case MCI_END_CONSTANT:
-                break;
-
-            case MCI_FLAG:
-                parsedCmd.flags |= flag;
-                i_token++;
-                break;
-
-            case MCI_INTEGER: {
-                if (inConst) { /* Handle the case where we've hit a MCI_INTEGER which is inside a MCI_CONSTANT block. */
-                    MCITokenData token_data;
-                    if (parsedCmd.parameters.tryGetVal(c_cmdtable->keystr, token_data)) {
-                        token_data.integer |= flag;
-                    } else {
-                        token_data.type = MCI_CONSTANT;
-                        token_data.integer |= flag;
-                        parsedCmd.parameters[c_cmdtable->keystr] = token_data;
-                    }
-                    parsedCmd.flags |= cflag;
-                    inConst = false;
-                } else {
-                    parsedCmd.flags |= flag;
-
-                    MCITokenData token_data;
-                    token_data.type = MCI_INTEGER;
-                    token_data.integer = atoi(token_list[++i_token].c_str());
-                    parsedCmd.parameters[token] = token_data;
-                }
-                i_token++;
-                break;
-                }
-
-            case MCI_STRING: {
-                parsedCmd.flags |= flag;
-
-                MCITokenData token_data;
-                token_data.type = MCI_STRING;
-                token_data.string = token_list[++i_token];
-                parsedCmd.parameters[token] = token_data;
-                i_token++;
-                break;
-                }
-
-            default:
-                warning("parseMCICommand(): Unhandled command type %d", cmd_type);
-                return MCIERR_UNRECOGNISED_COMMAND;
-            }
-        }
-
-        if (!found) {
-            warning("parseMCICommand(): Parameter %s not found in table", token_list[i_token].c_str());
-            return MCIERR_UNRECOGNISED_COMMAND;
-        }
-    }
-
-    return MCIERR_NO_ERROR;
+	auto cmd = table[tableStart];
+	parsedCmd.id = (MCITokenType)cmd.flag;
+	parsedCmd.flags = cmd.num;
+
+	/* The MCI device will ALWAYS be the second token. */
+	parsedCmd.device = token_list[1];
+
+	/* Parse the rest of the arguments */
+	i_token = 2;
+
+	while (i_token < token_list.size()) {
+		bool found = false;
+		bool inConst = false;
+		int flag, cflag = 0;
+		const CmdTableRow *cmdtable, *c_cmdtable = nullptr;
+		auto& token = token_list[i_token];
+
+		for (i_table = tableStart; i_table < tableEnd; i_table++) {
+			MCIDataType cmd_type = table[i_table].data_type;
+			flag = table[i_table].flag;
+			cmdtable = &table[i_table];
+
+			switch (cmd_type) {
+			case MCI_CONSTANT:
+				c_cmdtable = cmdtable;
+				inConst = true;
+				cflag = flag;
+				break;
+
+			case MCI_END_CONSTANT:
+				c_cmdtable = nullptr;
+				inConst = false;
+				cflag = 0;
+				break;
+
+			default:
+				break;
+			}
+
+			if (token != table[i_table].keystr)
+				continue;
+
+			found = true;
+
+			switch (cmd_type) {
+			case MCI_COMMAND_HEAD:
+			case MCI_RETURN:
+			case MCI_END_COMMAND:
+			case MCI_END_COMMAND_LIST:
+			case MCI_CONSTANT:
+			case MCI_END_CONSTANT:
+				break;
+
+			case MCI_FLAG:
+				parsedCmd.flags |= flag;
+				i_token++;
+				break;
+
+			case MCI_INTEGER: {
+				if (inConst) { /* Handle the case where we've hit a MCI_INTEGER which is inside a MCI_CONSTANT block. */
+					MCITokenData token_data;
+					if (parsedCmd.parameters.tryGetVal(c_cmdtable->keystr, token_data)) {
+						token_data.integer |= flag;
+					} else {
+						token_data.type = MCI_CONSTANT;
+						token_data.integer |= flag;
+						parsedCmd.parameters[c_cmdtable->keystr] = token_data;
+					}
+					parsedCmd.flags |= cflag;
+					inConst = false;
+				} else {
+					parsedCmd.flags |= flag;
+
+					MCITokenData token_data;
+					token_data.type = MCI_INTEGER;
+					token_data.integer = atoi(token_list[++i_token].c_str());
+					parsedCmd.parameters[token] = token_data;
+				}
+				i_token++;
+				break;
+				}
+
+			case MCI_STRING: {
+				parsedCmd.flags |= flag;
+
+				MCITokenData token_data;
+				token_data.type = MCI_STRING;
+				token_data.string = token_list[++i_token];
+				parsedCmd.parameters[token] = token_data;
+				i_token++;
+				break;
+				}
+
+			default:
+				warning("parseMCICommand(): Unhandled command type %d", cmd_type);
+				return MCIERR_UNRECOGNISED_COMMAND;
+			}
+		}
+
+		if (!found) {
+			warning("parseMCICommand(): Parameter %s not found in table", token_list[i_token].c_str());
+			return MCIERR_UNRECOGNISED_COMMAND;
+		}
+	}
+
+	return MCIERR_NO_ERROR;
 }
 
 void Lingo::func_mci(const Common::String &name) {
 
-    MCICommand parsedCmd;
-    parseMCICommand(name, parsedCmd);
-
-    switch (parsedCmd.id) {
-    case MCI_OPEN: {
-        Common::File *file = new Common::File();
-
-        if (!file->open(Common::Path(parsedCmd.device, g_director->_dirSeparator))) {
-            warning("func_mci(): Failed to open %s", parsedCmd.device.c_str());
-            delete file;
-            return;
-        }
-
-        parsedCmd.parameters["type"].string.toLowercase(); /* In the case the open command type has something like WaveAudio instead of waveaudio */
-
-        if (parsedCmd.parameters["type"].string == "waveaudio") {
-            Audio::AudioStream *sound = Audio::makeWAVStream(file, DisposeAfterUse::YES);
-            if (parsedCmd.parameters.contains("alias")) {
-                _audioAliases[parsedCmd.parameters["alias"].string] = sound;
-            } else {
-                delete sound;
-            }
-        } else {
-            warning("func_mci(): Unhandled audio type %s", parsedCmd.parameters["type"].string.c_str());
-            delete file;
-        }
-        }
-        break;
-
-    case MCI_PLAY: {
-        warning("func_mci(): MCI play file: %s, from: %d, to: %d", parsedCmd.device.c_str(), parsedCmd.parameters["from"].integer, parsedCmd.parameters["to"].integer);
-
-        if (!_audioAliases.contains(parsedCmd.device)) {
-            warning("func_mci(): Unknown alias %s", parsedCmd.device.c_str());
-            return;
-        }
-
-        uint32 from = parsedCmd.parameters["from"].integer;
-        uint32 to = parsedCmd.parameters.contains("to") ? parsedCmd.parameters["to"].integer : -1;
-
-        _vm->getCurrentWindow()->getSoundManager()->playMCI(*_audioAliases[parsedCmd.device], from, to);
-        }
-        break;
-
-    default:
-        warning("func_mci: Unhandled MCI command: %d (%s)", parsedCmd.id, name.c_str()); /* TODO: Convert MCITokenType into string */
-    }
+	MCICommand parsedCmd;
+	parseMCICommand(name, parsedCmd);
+
+	switch (parsedCmd.id) {
+	case MCI_OPEN: {
+		Common::File *file = new Common::File();
+
+		if (!file->open(Common::Path(parsedCmd.device, g_director->_dirSeparator))) {
+			warning("func_mci(): Failed to open %s", parsedCmd.device.c_str());
+			delete file;
+			return;
+		}
+
+		parsedCmd.parameters["type"].string.toLowercase(); /* In the case the open command type has something like WaveAudio instead of waveaudio */
+
+		if (parsedCmd.parameters["type"].string == "waveaudio") {
+			Audio::AudioStream *sound = Audio::makeWAVStream(file, DisposeAfterUse::YES);
+			if (parsedCmd.parameters.contains("alias")) {
+				_audioAliases[parsedCmd.parameters["alias"].string] = sound;
+			} else {
+				delete sound;
+			}
+		} else {
+			warning("func_mci(): Unhandled audio type %s", parsedCmd.parameters["type"].string.c_str());
+			delete file;
+		}
+		}
+		break;
+
+	case MCI_PLAY: {
+		warning("func_mci(): MCI play file: %s, from: %d, to: %d", parsedCmd.device.c_str(), parsedCmd.parameters["from"].integer, parsedCmd.parameters["to"].integer);
+
+		if (!_audioAliases.contains(parsedCmd.device)) {
+			warning("func_mci(): Unknown alias %s", parsedCmd.device.c_str());
+			return;
+		}
+
+		uint32 from = parsedCmd.parameters["from"].integer;
+		uint32 to = parsedCmd.parameters.contains("to") ? parsedCmd.parameters["to"].integer : -1;
+
+		_vm->getCurrentWindow()->getSoundManager()->playMCI(*_audioAliases[parsedCmd.device], from, to);
+		}
+		break;
+
+	default:
+		warning("func_mci: Unhandled MCI command: %d (%s)", parsedCmd.id, name.c_str()); /* TODO: Convert MCITokenType into string */
+	}
 }
 
 void Lingo::func_mciwait(const Common::String &name) {
-    warning("STUB: MCI wait file: %s", name.c_str());
+	warning("STUB: MCI wait file: %s", name.c_str());
 }
 
 } // End of namespace Director




More information about the Scummvm-git-logs mailing list