diff options
26 files changed, 23 insertions, 1618 deletions
diff --git a/include/delphi/m_api.pas b/include/delphi/m_api.pas index 3d3cf815b9..66cefac276 100644 --- a/include/delphi/m_api.pas +++ b/include/delphi/m_api.pas @@ -237,7 +237,6 @@ var {$include m_timezones.inc}
{$include m_userinfo.inc}
{$include m_utils.inc}
- {$include m_xml.inc}
{$include m_xstatus.inc}
{$include m_zlib.inc}
diff --git a/include/delphi/m_xml.inc b/include/delphi/m_xml.inc deleted file mode 100644 index 966cf736f1..0000000000 --- a/include/delphi/m_xml.inc +++ /dev/null @@ -1,184 +0,0 @@ -{
-Miranda IM: the free IM client for Microsoft* Windows*
-
-Copyright 2000-2008 Miranda ICQ/IM project,
-all portions of this codebase are copyrighted to the people
-listed in contributors.txt.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-}
-
-{$IFNDEF M_XML}
-{$DEFINE M_XML}
-
-type
- HXML = THANDLE;
-
-type
- XML_ELEMENT_POS = int; // XML_ELEMENT_POS is not interchangeable with simple indexes
-
-type
- XML_ELEMENT_TYPE = (
- XML_ELEM_TYPE_CHILD,XML_ELEM_TYPE_ATTRIBUTE,
- XML_ELEM_TYPE_TEXT ,XML_ELEM_TYPE_CLEAR);
-
-/// Enumeration for XML parse errors.
-type
- XMLError = (
- eXMLErrorNone,
- eXMLErrorMissingEndTag,
- eXMLErrorNoXMLTagFound,
- eXMLErrorEmpty,
- eXMLErrorMissingTagName,
- eXMLErrorMissingEndTagName,
- eXMLErrorUnmatchedEndTag,
- eXMLErrorUnmatchedEndClearTag,
- eXMLErrorUnexpectedToken,
- eXMLErrorNoElements,
- eXMLErrorFileNotFound,
- eXMLErrorFirstTagNotFound,
- eXMLErrorUnknownCharacterEntity,
- eXMLErrorCharacterCodeAbove255,
- eXMLErrorCharConversionError,
- eXMLErrorCannotOpenWriteFile,
- eXMLErrorCannotWriteFile,
-
- eXMLErrorBase64DataSizeIsNotMultipleOf4,
- eXMLErrorBase64DecodeIllegalCharacter,
- eXMLErrorBase64DecodeTruncatedData,
- eXMLErrorBase64DecodeBufferTooSmall);
-
-function xmlCreateNode(const name, text:PWideChar; IsDeclaration:boolean):HXML; stdcall;
- external AppDll name 'xmlCreateNode';
-procedure xmlDestroyNode(node:HXML); stdcall;
- external AppDll name 'xmlDestroyNode';
-
-function xmlParseString(const str:PWideChar; datalen:pint; const tag:PWideChar):HXML; stdcall;
- external AppDll name 'xmlParseString';
-function xmlToString(node:HXML;datalen:pint):PWideChar; stdcall;
- external AppDll name 'xmlToString';
-
-function xmlAddChild(parent:HXML; const name,text:PWideChar):HXML; stdcall;
- external AppDll name 'xmlAddChild';
-procedure xmlAddChild2(child,parent:HXML); stdcall;
- external AppDll name 'xmlAddChild2';
-function xmlCopyNode(parent:HXML):HXML; stdcall;
- external AppDll name 'xmlCopyNode';
-function xmlGetChild(parent:HXML;number:int):HXML; stdcall;
- external AppDll name 'xmlGetChild';
-function xmlGetChildCount(h:HXML):int; stdcall;
- external AppDll name 'xmlGetChildCount';
-function xmlGetChildByAttrValue(parent:HXML; const name,attrName,attrValue:PWideChar):HXML; stdcall;
- external AppDll name 'xmlGetChildByAttrValue';
-function xmlGetFirstChild(parent:HXML):HXML; stdcall;
- external AppDll name 'xmlGetFirstChild';
-function xmlGetNthChild(parent:HXML; const name:PWideChar; i:int):HXML; stdcall;
- external AppDll name 'xmlGetNthChild';
-function xmlGetNextChild(parent:HXML; const name:PWideChar; i:pint):HXML; stdcall;
- external AppDll name 'xmlGetNextChild';
-function xmlGetChildByPath(parent:HXML; const path:PWideChar;createNodeIfMissing:boolean):HXML; stdcall;
- external AppDll name 'xmlGetChildByPath';
-function xmlGetNextNode(node:HXML):HXML; stdcall;
- external AppDll name 'xmlGetNextNode';
-function xmlGetName(h:HXML):PWideChar; stdcall;
- external AppDll name 'xmlGetName';
-function xmlGetParent(h:HXML):HXML; stdcall;
- external AppDll name 'xmlGetParent';
-function xmlGetText(h:HXML):PWideChar; stdcall; // = getTextByIndex(HXML, 0)
- external AppDll name 'xmlGetText';
-procedure xmlSetText(h:HXML;value:PWideChar); stdcall; // = setTextByIndex(HXML, LPCTSTR, 0)
- external AppDll name 'xmlSetText';
-
-function xmlGetAttr(h:HXML;i:int):PWideChar; stdcall;
- external AppDll name 'xmlGetAttr';
-function xmlGetAttrName(h:HXML;i:int):PWideChar; stdcall;
- external AppDll name 'xmlGetAttrName';
-function xmlGetAttrValue(h:HXML;const attrName:PWideChar):PWideChar; stdcall;
- external AppDll name 'xmlGetAttrValue';
-function xmlGetAttrCount(h:HXML):int; stdcall;
- external AppDll name 'xmlGetAttrCount';
-procedure xmlAddAttr(h:HXML;const attrName,attrValue:PWideChar); stdcall;
- external AppDll name 'xmlAddAttr';
-procedure xmlAddAttrInt(h:HXML; const attrName:PWideChar;attrValue:int); stdcall;
- external AppDll name 'xmlAddAttrInt';
-
-procedure xmlFree(arg:pointer); stdcall;
- external AppDll name 'xmlFree';
-
-function xmlIsDeclaration(node:HXML):boolean; stdcall;
- external AppDll name 'xmlIsDeclaration';
-function xmlToStringWithFormatting(node:HXML; var datalen:int):PWideChar; stdcall;
- external AppDll name 'xmlToStringWithFormatting';
-function xmlDeepCopy(node:HXML):HXML; stdcall;
- external AppDll name 'xmlDeepCopy';
-procedure xmlSetAttrByIndex(node:HXML; i:int; value:PWideChar); stdcall;
- external AppDll name 'xmlSetAttrByIndex';
-procedure xmlSetAttrByName(node:HXML; name:PWideChar; value:PWideChar); stdcall;
- external AppDll name 'xmlSetAttrByName';
-function xmlAddChildEx(parent:HXML; name:PWideChar; isDeclaration:boolean; n:XML_ELEMENT_POS):HXML; stdcall;
- external AppDll name 'xmlAddChildEx';
-procedure xmlAddChildEx2(child:HXML; parent:HXML; n:XML_ELEMENT_POS); stdcall;
- external AppDll name 'xmlAddChildEx2';
-function xmlGetTextCount(node:HXML):int; stdcall;
- external AppDll name 'xmlGetTextCount';
-function xmlGetTextByIndex(node:HXML; i:int):PWideChar; stdcall;
- external AppDll name 'xmlGetTextByIndex';
-procedure xmlAddText(node:HXML; txt:PWideChar; n:XML_ELEMENT_POS); stdcall;
- external AppDll name 'xmlAddText';
-procedure xmlSetTextByIndex(node:HXML; i:int; txt:PWideChar); stdcall;
- external AppDll name 'xmlSetTextByIndex';
-function xmlGetClearCount(node:HXML):int; stdcall;
- external AppDll name 'xmlGetClearCount';
-function xmlGetClear(node:HXML; i:int; var openTag:PWideChar; var closeTag:PWideChar):PWideChar; stdcall;
- external AppDll name 'xmlGetClear';
-procedure xmlAddClear(node:HXML; lpszValue:PWideChar; openTag:PWideChar; closeTag:PWideChar; n:XML_ELEMENT_POS); stdcall;
- external AppDll name 'xmlAddClear';
-procedure xmlSetClear(node:HXML; i:int; lpszValue:PWideChar); stdcall;
- external AppDll name 'xmlSetClear';
-function xmlGetElementCount(node:HXML):int; stdcall;
- external AppDll name 'xmlGetElementCount';
-function xmlGetElement(node:HXML; n:XML_ELEMENT_POS; var _type:XML_ELEMENT_TYPE;
- var child:HXML;var value:PWideChar; var name:PWideChar;
- var openTag:PWideChar; var closeTag:PWideChar):int; stdcall;
- external AppDll name 'xmlGetElement';
-
-procedure xmlDeleteNodeContent(node:HXML); stdcall; // forces the deletion of the content of this node and the subtree
- external AppDll name 'xmlDeleteNodeContent';
-procedure xmlDeleteAttrByIndex(node:HXML; i:int); stdcall;
- external AppDll name 'xmlDeleteAttrByIndex';
-procedure xmlDeleteAttrByName(node:HXML; name:PWideChar); stdcall;
- external AppDll name 'xmlDeleteAttrByName';
-procedure xmlDeleteText(node:HXML; i:int); stdcall;
- external AppDll name 'xmlDeleteText';
-procedure xmlDeleteClear(node:HXML; i:int); stdcall;
- external AppDll name 'xmlDeleteClear';
-
-function xmlPositionOfChildByIndex(node:HXML; i:int):XML_ELEMENT_POS; stdcall;
- external AppDll name 'xmlPositionOfChildByIndex';
-function xmlPositionOfChildByNode(node:HXML; node1:HXML):XML_ELEMENT_POS; stdcall;
- external AppDll name 'xmlPositionOfChildByNode';
-function xmlPositionOfChildByName(node:HXML; name:PWideChar; i:int):XML_ELEMENT_POS; stdcall;
- external AppDll name 'xmlPositionOfChildByName';
-function xmlPositionOfText(node:HXML; i:int):XML_ELEMENT_POS; stdcall;
- external AppDll name 'xmlPositionOfText';
-function xmlPositionOfClear(node:HXML; i:int):XML_ELEMENT_POS; stdcall;
- external AppDll name 'xmlPositionOfClear';
-
-function xmlParseFile(filename:PAnsiChar; datalen:pint; tag:PAnsiChar):HXML; stdcall;
- external AppDll name 'xmlParseFile';
-function xmlToFile(node:HXML; filename:PAnsiChar; withformattiing:int):XMLError; stdcall;
- external AppDll name 'xmlToFile';
-
-{$ENDIF}
diff --git a/plugins/Actman/actman.dpr b/plugins/Actman/actman.dpr index 296c02e1ef..128abd0ea9 100644 --- a/plugins/Actman/actman.dpr +++ b/plugins/Actman/actman.dpr @@ -54,7 +54,6 @@ uses iac_call,
iac_ini,
iac_notes,
- inoutxml,
ua in 'ua\ua.pas',
hooks in 'hooks\hooks.pas',
scheduler in 'tasks\scheduler.pas';
diff --git a/plugins/Actman/i_opt_dlg.inc b/plugins/Actman/i_opt_dlg.inc index 878f127427..c1a7de4817 100644 --- a/plugins/Actman/i_opt_dlg.inc +++ b/plugins/Actman/i_opt_dlg.inc @@ -1,6 +1,4 @@ {}
-var
- xmlfilename:array [0..511] of WideChar;
const
etMacro = 1; // Groups changed
etACT = 2; // Actions changed
@@ -19,8 +17,6 @@ begin result:=0;
NoDescription:=TranslateW('No description');
- StrCopyW(xmlfilename,'c:\export.xml');
-
DoInitCommonControls(ICC_USEREX_CLASSES);
FillChar(odp,SizeOf(odp),0);
diff --git a/plugins/Actman/i_opt_dlg2.inc b/plugins/Actman/i_opt_dlg2.inc index 0a50f9d171..e247b1c9c3 100644 --- a/plugins/Actman/i_opt_dlg2.inc +++ b/plugins/Actman/i_opt_dlg2.inc @@ -1,8 +1,6 @@ {}
const
- inoutfilter:pWideChar = 'XML files'#0'*.xml'#0'All files'#0'*.*'#0#0;
-const
MaxDescrLen = 128;
const
hlpVariables = 30;
@@ -935,27 +933,6 @@ begin end;
case loword(wParam) of
- IDC_GROUP_IMPORT: begin
- if ShowDlgW(xmlfilename,xmlfilename,TranslateW(inoutfilter)) then
- begin
- // "save" selected macro (in edit list only)
- BuildActionChain(Dialog);
-
- if Import(EditMacroList,xmlfilename,0)<>0 then
- begin
- // copy from WM_INITDIALOG
- FillMacroList(Dialog);
- ChangeListNotify(1);
-
- // fill current group
- FillActionList(Dialog,EditMacroList[0]);
- ChangeListNotify(2);
-
- CheckMacroListDirectionButtons(Dialog);
- end;
- end;
- end;
-
IDC_GROUP_TEST: begin
li.mask :=LVIF_PARAM;
li.iSubItem:=0;
diff --git a/plugins/Actman/iac_call.pas b/plugins/Actman/iac_call.pas index 0ff306e4b9..e368bb456b 100644 --- a/plugins/Actman/iac_call.pas +++ b/plugins/Actman/iac_call.pas @@ -45,7 +45,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -101,14 +101,7 @@ begin inherited Destroy;
end;
-{
-function tCallAction.Clone:tBaseAction;
-begin
- result:=.Create(0);
- Duplicate(result);
-end;
-}
function tCallAction.DoAction(var WorkData:tWorkData):LRESULT;
var
hDLL:THANDLE;
diff --git a/plugins/Actman/iac_chain.pas b/plugins/Actman/iac_chain.pas index 5be20d6d8c..ee2a73f4ca 100644 --- a/plugins/Actman/iac_chain.pas +++ b/plugins/Actman/iac_chain.pas @@ -35,7 +35,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -60,16 +60,7 @@ begin inherited Destroy;
end;
-{
-function tChainAction.Clone:tBaseAction;
-begin
- result:=tChainAction.Create(0);
- Duplicate(result);
- tChainAction(result).id:=id;
- StrDupW(tChainAction(result).actname,actname);
-end;
-}
function tChainAction.DoAction(var WorkData:tWorkData):LRESULT;
var
params:tAct_Param;
@@ -139,20 +130,6 @@ begin pc:=StrCopyE(section,pAnsiChar(node));
StrCopy(pc,'text'); id:=DBReadDWord(0,DBBranch,section);
end;
-
- 1: begin
- StrDupW(actname,xmlGetText(HXML(node)));
- flags:=flags or ACF_BYNAME;
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioNoWait))=1 then
- flags:=flags or ACF_NOWAIT;
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioKeepOld))=1 then
- flags:=flags or ACF_KEEPOLD;
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioSameThread))=1 then
- flags:=flags or ACF_SAMETHREAD;
- end;
end;
end;
@@ -174,23 +151,7 @@ begin StrCopy(pc,opt_actname); DBWriteUnicode(0,DBBranch,section,actname);
end;
end;
-{
- 1: begin
- end;
-}
-{
- 2: begin
- end;
-}
-{
- 3: begin
- Out(node,['CallAction',actname,
- IFF(flags or ACF_SAMETHREAD,'samethread',''),
- IFF(flags or ACF_NOWAIT ,'nowait',''),
- IFF(flags or ACF_KEEPOLD ,'keepold','')
- ]);
- end;
-}
+
13: begin
tTextExport(node).AddTextW('actionname',actname);
tTextExport(node).AddFlag('samethread',(flags or ACF_SAMETHREAD)<>0);
diff --git a/plugins/Actman/iac_contact.pas b/plugins/Actman/iac_contact.pas index ffcfd47bd5..bf19f02020 100644 --- a/plugins/Actman/iac_contact.pas +++ b/plugins/Actman/iac_contact.pas @@ -27,7 +27,7 @@ type contact:TMCONTACT;
public
constructor Create(uid:dword);
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -41,15 +41,6 @@ begin contact:=0;
end;
-{
-function tContactAction.Clone:tBaseAction;
-begin
- result:=tContactAction.Create(0);
- Duplicate(result);
-
- tContactAction(result).contact:=contact;
-end;
-}
//----- Object realization -----
@@ -82,14 +73,6 @@ begin case fmt of
0: if (flags and ACF_GETACTIVE)=0 then
contact:=LoadContact(DBBranch,node);
-
- 1: begin
- contact:=ImportContact(HXML(node));
- if StrToInt(xmlGetAttrValue(HXML(node),ioKeepOnly))=1 then
- flags:=flags or ACF_KEEPONLY;
- if StrToInt(xmlGetAttrValue(HXML(node),ioWindow))=1 then
- flags:=flags or ACF_GETACTIVE;
- end;
end;
end;
diff --git a/plugins/Actman/iac_dbrw.pas b/plugins/Actman/iac_dbrw.pas index f03e5048a7..5031e5ee7e 100644 --- a/plugins/Actman/iac_dbrw.pas +++ b/plugins/Actman/iac_dbrw.pas @@ -92,7 +92,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -120,25 +120,7 @@ begin inherited Destroy;
end;
-{
-function tDataBaseAction.Clone:tBaseAction;
-var
- tmp:tDataBaseAction;
-begin
- result:=tDataBaseAction.Create(0);
- Duplicate(result);
-
- tmp.dbcontact:=dbcontact;
- StrDupW(tmp.dbmodule ,dbmodule);
- StrDupW(tmp.dbsetting,dbsetting);
- if ((flags and ACF_DBDELETE)=0) and
- ((flags and ACF_LAST)=0) then
- StrDupW(tmp.dbvalue,dbvalue);
-
- result:=tmp;
-end;
-}
function tDataBaseAction.DoAction(var WorkData:tWorkData):LRESULT;
var
sbuf:array [0..31] of WideChar;
@@ -387,42 +369,6 @@ begin if (flags2 and ACF2_RW_TVAR)<>0 then flags:=flags or ACF_RW_VALUE;
end;
-
- 1: begin
- tmp:=xmlGetAttrValue(HXML(node),ioOper);
- if lstrcmpiw(tmp,ioDelete)=0 then flags:=flags or ACF_DBDELETE
- else if lstrcmpiw(tmp,ioWrite )=0 then flags:=flags or ACF_DBWRITE;
- tmp:=xmlGetAttrValue(HXML(node),ioContact);
- if lstrcmpiw(tmp,ioCurrent)=0 then flags:=flags or ACF_CURRENT
- else if lstrcmpiw(tmp,ioResult )=0 then flags:=flags or ACF_RESULT
- else if lstrcmpiw(tmp,ioParam )=0 then flags:=flags or ACF_PARAM
- else if lstrcmpiw(tmp,ioContact)=0 then
- begin
- dbcontact:=ImportContact(HXML(node));
- end;
-
- StrDupW(dbmodule ,xmlGetAttrValue(HXML(node),ioModule));
- StrDupW(dbsetting,xmlGetAttrValue(HXML(node),ioSetting));
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioFileVariable))=1 then flags:=flags or ACF_RW_MODULE;
- if StrToInt(xmlGetAttrValue(HXML(node),ioArgVariable ))=1 then flags:=flags or ACF_RW_SETTING;
- if StrToInt(xmlGetAttrValue(HXML(node),ioVariables ))=1 then flags:=flags or ACF_RW_VALUE;
-
- tmp:=xmlGetAttrValue(HXML(node),ioType);
- if lstrcmpiw(tmp,ioByte )=0 then flags:=flags or ACF_DBBYTE
- else if lstrcmpiw(tmp,ioWord )=0 then flags:=flags or ACF_DBWORD
- else if lstrcmpiw(tmp,ioDword)=0 then
- else if lstrcmpiw(tmp,ioAnsi )=0 then flags:=flags or ACF_DBANSI
- else flags:=flags or ACF_DBUTEXT;
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioSaveValue))=1 then
- flags:=flags or ACF_SAVE;
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioLast))=1 then
- flags:=flags or ACF_LAST
- else
- StrDupW(dbvalue,xmlGetText(HXML(node)));
- end;
end;
end;
@@ -445,10 +391,7 @@ begin StrCopy(pc,opt_value); DBWriteUnicode(0,DBBranch,section,dbvalue);
end;
end;
-{
- 1: begin
- end;
-}
+
13: begin
end;
end;
diff --git a/plugins/Actman/iac_global.pas b/plugins/Actman/iac_global.pas index aa5b9bb87c..57ff40e383 100644 --- a/plugins/Actman/iac_global.pas +++ b/plugins/Actman/iac_global.pas @@ -62,7 +62,7 @@ type constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; virtual;
+
function DoAction(var WorkData:tWorkData):LRESULT; virtual; // process action
procedure Load(node:pointer;fmt:integer); virtual; // load/import action
procedure Save(node:pointer;fmt:integer); virtual; // save/export action
@@ -99,7 +99,6 @@ function GetLinkName (hash:dword ):PAnsiChar; function GetLink (hash:dword ):pActModule;
function GetLinkByName(name:pAnsiChar):pActModule;
-function ImportContact (node:HXML ):TMCONTACT;
function ImportContactINI(node:pointer):TMCONTACT;
@@ -143,13 +142,7 @@ begin dst.UID :=UID;
dst.flags:=flags;
end;
-{
-function tBaseAction.Clone:tBaseAction;
-begin
- //dummy
- result:=nil;
-end;
-}
+
function tBaseAction.DoAction(var WorkData:tWorkData):LRESULT;
begin
result:=0;
@@ -170,13 +163,6 @@ begin StrCopy(pc,opt_flags); flags :=DBReadDword (0,DBBranch,section);
// UID reading in main program, set by constructor
end;
-
- 1: begin
- if StrToInt(xmlGetAttrValue(HXML(node),ioDisabled))=1 then
- flags:=flags or ACF_DISABLED;
-
- StrDupW(ActionDescr,xmlGetAttrValue(HXML(node),ioName));
- end;
end;
end;
@@ -192,10 +178,7 @@ begin StrCopy(pc,opt_flags); DBWriteDWord (0,DBBranch,section,flags);
StrCopy(pc,opt_descr); DBWriteUnicode(0,DBBranch,section,ActionDescr);
end;
-{
- 1: begin
- end;
-}
+
13: begin
tTextExport(node).AddText ('type' ,GetLinkName(UID));
tTextExport(node).AddTextW('name' ,ActionDescr);
@@ -312,54 +295,6 @@ const ioCUID = 'cuid';
ioCUIDType = 'cuidtype';
-function ImportContact(node:HXML):TMCONTACT;
-var
- proto:pAnsiChar;
- tmpbuf:array [0..63] of AnsiChar;
- dbv:TDBVARIANT;
- tmp:pWideChar;
- is_chat:boolean;
- bufLen:int;
-begin
- proto:=FastWideToAnsiBuf(xmlGetAttrValue(node,ioCProto),tmpbuf);
- if (proto=nil) or (proto^=#0) then
- begin
- result:=0;
- exit;
- end;
- is_chat:=StrToInt(xmlGetAttrValue(node,ioIsChat))<>0;
-
- tmp:=xmlGetAttrValue(node,ioCUID);
- if is_chat then
- begin
- dbv.szVal.W:=tmp;
- end
- else
- begin
- FillChar(dbv,SizeOf(TDBVARIANT),0);
- dbv._type:=StrToInt(xmlGetAttrValue(node,ioCUIDType));
- case dbv._type of
- DBVT_BYTE : dbv.bVal:=StrToInt(tmp);
- DBVT_WORD : dbv.wVal:=StrToInt(tmp);
- DBVT_DWORD : dbv.dVal:=StrToInt(tmp);
- DBVT_ASCIIZ: FastWideToAnsi(tmp,dbv.szVal.A);
- DBVT_UTF8 : WideToUTF8(tmp,dbv.szVal.A);
- DBVT_WCHAR : dbv.szVal.W:=tmp;
- DBVT_BLOB : begin
- dbv.pbVal := mir_base64_decode(FastWideToAnsi(tmp,pAnsiChar(dbv.pbVal)),bufLen);
- dbv.cpbVal := bufLen;
- end;
- end;
- end;
- result:=FindContactHandle(proto,dbv,is_chat);
- if not is_chat then
- case dbv._type of
- DBVT_ASCIIZ,
- DBVT_UTF8 : mFreeMem(dbv.szVal.A);
- DBVT_BLOB : mFreeMem(dbv.pbVal);
- end;
-end;
-
function ImportContactINI(node:pointer):TMCONTACT;
{
var
diff --git a/plugins/Actman/iac_ini.pas b/plugins/Actman/iac_ini.pas index 03c8d7a9d6..fa417c14dd 100644 --- a/plugins/Actman/iac_ini.pas +++ b/plugins/Actman/iac_ini.pas @@ -38,7 +38,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -62,14 +62,7 @@ begin inherited Destroy;
end;
-{
-function tINIAction.Clone:tBaseAction;
-begin
- result:=tServiceAction.Create(0);
- Duplicate(result);
-end;
-}
function tINIAction.DoAction(var WorkData:tWorkData):LRESULT;
var
linifile,
diff --git a/plugins/Actman/iac_inout.pas b/plugins/Actman/iac_inout.pas index dc048411cc..d6abe6085b 100644 --- a/plugins/Actman/iac_inout.pas +++ b/plugins/Actman/iac_inout.pas @@ -52,7 +52,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -75,14 +75,7 @@ begin inherited Destroy;
end;
-{
-function tInOutAction.Clone:tBaseAction;
-begin
- result:=.Create(0);
- Duplicate(result);
-end;
-}
function tInOutAction.DoAction(var WorkData:tWorkData):LRESULT;
var
tmp:PWideChar;
@@ -329,74 +322,6 @@ begin if (flags2 and ACF2_TXT_FILE)<>0 then
flags:=flags or ACF_FILE_PATH;
end;
-
- 1: begin
- tmp:=xmlGetAttrValue(HXML(node),ioObject);
- if lstrcmpiw(tmp,ioClipboard)=0 then
- begin
- flags:=flags or ACF_CLIPBRD;
- tmp:=xmlGetAttrValue(HXML(node),ioOper);
- if lstrcmpiw(tmp,ioCopy)=0 then flags:=flags or ACF_COPYTO;
- end
- else
- begin
- if lstrcmpiw(tmp,ioFile)=0 then
- begin
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioFileVariable))=1 then
- flags:=flags or ACF_FILE_PATH;
-
- flags:=flags or ACF_FILE;
- StrDupW(tfile,xmlGetAttrValue(HXML(node),ioFile));
- tmp:=xmlGetAttrValue(HXML(node),ioOper);
- if lstrcmpiw(tmp,ioWrite )=0 then flags:=flags or ACF_FWRITE
- else if lstrcmpiw(tmp,ioAppend)=0 then flags:=flags or ACF_FAPPEND;
- case StrToInt(xmlGetAttrValue(HXML(node),ioEnc)) of
- 0: flags:=flags or ACF_ANSI;
- 1: flags:=flags or ACF_UTF8;
- 2: flags:=flags or ACF_UTF8 or ACF_SIGN;
- 3: flags:=flags or 0;
- 4: flags:=flags or ACF_SIGN;
- end;
- end;
- end;
- end;
-{
- 2: begin
- pc:=GetParamSectionStr(node,ioObject);
- if lstrcmpi(tmp,ioClipboard)=0 then
- begin
- flags:=flags or ACF_CLIPBRD;
- pc:=GetParamSectionStr(node,ioOper);
- if lstrcmpi(pc,ioCopy)=0 then flags:=flags or ACF_COPYTO;
-// else if lstrcmpi(pc,'paste')=0 then ;
- end
- else
- begin
- if lstrcmpi(pc,ioFile)=0 then
- begin
- flags:=flags or ACF_FILE;
-
- if GetParamSectionInt(node,ioFileVariable))=1 then
- flags:=flags or ACF_FILE_PATH;
-
- UTF8ToWide(GetParamSectionStr(node,ioFile),tfile);
-
- pc:=GetParamSectionStr(node,ioOper);
- if lstrcmpi(pc,ioWrite )=0 then flags:=flags or ACF_FWRITE
- else if lstrcmpi(pc,ioAppend)=0 then flags:=flags or ACF_FAPPEND;
-
- case GetParamSectionInt(node,ioEnc)) of
- 0: flags:=flags or ACF_ANSI;
- 1: flags:=flags or ACF_UTF8;
- 2: flags:=flags or ACF_UTF8 or ACF_SIGN;
- 3: flags:=flags or 0;
- 4: flags:=flags or ACF_SIGN;
- end;
- end;
- end;
- end;
-}
end;
end;
diff --git a/plugins/Actman/iac_jump.pas b/plugins/Actman/iac_jump.pas index 8e2bba787c..53268ea5e3 100644 --- a/plugins/Actman/iac_jump.pas +++ b/plugins/Actman/iac_jump.pas @@ -68,7 +68,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -94,17 +94,7 @@ begin inherited Destroy;
end;
-{
-function tJumpAction.Clone:tBaseAction;
-begin
- result:=tJumpAction.Create(0);
- Duplicate(result);
- result.condition:=condition;
- StrDupW(result.value,value);
- StrDupW(result.actlabel,actlabel);
-end;
-}
function tJumpAction.DoAction(var WorkData:tWorkData):LRESULT;
var
tmpint:int64;
@@ -229,7 +219,6 @@ var buf:array [0..31] of WideChar;
pc:pAnsiChar;
tmp:pWideChar;
- sub:HXML;
oper,cond:byte;
begin
inherited Load(node,fmt);
@@ -291,56 +280,6 @@ begin end;
end;
end;
-
- 1: begin
- sub:=xmlGetNthChild(HXML(node),ioIf,0);
- if sub<>0 then
- begin
- tmp:=xmlGetAttrValue(sub,ioOper);
- if lstrcmpiw(tmp,'math')=0 then flags:=flags or ACF_MATH
- else if lstrcmpiw(tmp,ioNop )=0 then flags:=flags or ACF_NOP;
-
- tmp:=xmlGetAttrValue(sub,ioCond);
- if lstrcmpiw(tmp,ioNop)=0 then flags:=flags or ACF_NOP // compatibility
- else if (flags and ACF_NOP)=0 then
- begin
- if flags and ACF_MATH<>0 then
- begin
- if lstrcmpiw(tmp,'gt' )=0 then condition:=aeGT
- else if lstrcmpiw(tmp,'lt' )=0 then condition:=aeLT
- else if lstrcmpiw(tmp,'eq' )=0 then condition:=aeEQ
- else if lstrcmpiw(tmp,'xor')=0 then condition:=aeXR
- else if lstrcmpiw(tmp,'and')=0 then condition:=aeND;
- end
- else
- begin
- if lstrcmpiw(tmp,'empty')=0 then condition:=aeEMP
- else if lstrcmpiw(tmp,'eq' )=0 then condition:=aeEQU
- else if lstrcmpiw(tmp,'cont' )=0 then condition:=aeCON
- else if lstrcmpiw(tmp,'start')=0 then condition:=aeSTR
- else if lstrcmpiw(tmp,'ends' )=0 then condition:=aeEND;
-
- if StrToInt(xmlGetAttrValue(sub,ioCase))=1 then
- flags:=flags or ACF_CASE;
- if StrToInt(xmlGetAttrValue(sub,ioBack))=1 then
- flags:=flags or ACF_BACK;
- end;
- if StrToInt(xmlGetAttrValue(sub,ioNot))=1 then
- flags:=flags or ACF_NOT;
-
- if ((flags and ACF_MATH)<>0) or (condition<>aeEMP) then
- StrDupW(value,xmlGetAttrValue(sub,ioValue));
- end;
- end;
-
- sub:=xmlGetNthChild(HXML(node),ioPost,0);
- if sub<>0 then
- begin
- tmp:=xmlGetAttrValue(sub,ioOper);
- if lstrcmpiw(tmp,ioBreak)=0 then flags:=flags or ACF_BREAK
- else if lstrcmpiw(tmp,ioJump )=0 then StrDupW(actlabel,xmlGetAttrValue(sub,ioValue));
- end;
- end;
end;
end;
@@ -363,21 +302,6 @@ begin StrCopy(pc,opt_label); DBWriteUnicode(0,DBBranch,section,actlabel);
end;
end;
-{
- 1: begin
- end;
-}
- 13: begin
-{
- ACF_NOP = $00000001;
- ACF_MATH = $00000002;
- ACF_NOT = $00000004;
- ACF_CASE = $00000008;
- ACF_BREAK = $00000010;
- ACF_BACK = $00000020;
- ACF_VALUE = $00000100;
-}
- end;
end;
end;
diff --git a/plugins/Actman/iac_messagebox.pas b/plugins/Actman/iac_messagebox.pas index 78320e1cd5..54adf70879 100644 --- a/plugins/Actman/iac_messagebox.pas +++ b/plugins/Actman/iac_messagebox.pas @@ -36,7 +36,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -60,17 +60,7 @@ begin inherited Destroy;
end;
-{
-function tMessageAction.Clone:tBaseAction;
-begin
- result:=tMessageAction.Create(0);
- Duplicate(result);
- StrDupW(tMessageAction(result).msgtext ,msgtext);
- StrDupW(tMessageAction(result).msgtitle,msgtitle);
- tMessageAction(result).boxopts:=boxopts;
-end;
-}
function tMessageAction.DoAction(var WorkData:tWorkData):LRESULT;
var
i:integer;
@@ -145,15 +135,6 @@ begin StrCopy(pc,opt_msgtext ); msgtext :=DBReadUnicode(0,DBBranch,section);
StrCopy(pc,opt_boxopts ); boxopts :=DBReadDword (0,DBBranch,section); // v2 = byte
end;
-
- 1: begin
- StrDupW(msgtitle,xmlGetAttrValue(HXML(node),ioTitle));
- StrDupW(msgtext,xmlGetText(HXML(node)));
- boxopts:=StrToInt(xmlGetAttrValue(HXML(node),ioType));
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioArgVariable))=1 then flags:=flags or ACF_MSG_TXT;
- if StrToInt(xmlGetAttrValue(HXML(node),ioVariables ))=1 then flags:=flags or ACF_MSG_TTL;
- end;
end;
end;
@@ -170,10 +151,7 @@ begin StrCopy(pc,opt_msgtext ); DBWriteUnicode(0,DBBranch,section,msgtext);
StrCopy(pc,opt_boxopts ); DBWriteDWord (0,DBBranch,section,boxopts);
end;
-{
- 1: begin
- end;
-}
+
13: begin
end;
end;
diff --git a/plugins/Actman/iac_notes.pas b/plugins/Actman/iac_notes.pas index 182e1aba9e..85c29fe802 100644 --- a/plugins/Actman/iac_notes.pas +++ b/plugins/Actman/iac_notes.pas @@ -23,7 +23,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
diff --git a/plugins/Actman/iac_program.pas b/plugins/Actman/iac_program.pas index b62e774da2..0f7ad393e9 100644 --- a/plugins/Actman/iac_program.pas +++ b/plugins/Actman/iac_program.pas @@ -52,7 +52,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -98,18 +98,7 @@ begin inherited Destroy;
end;
-{
-function tProgramAction.Clone:tBaseAction;
-begin
- result:=tProgramAction.Create(0);
- Duplicate(result);
- tProgramAction(result).show :=show;
- tProgramAction(result).time :=time;
- StrDupW(tProgramAction(result).prgname,prgname);
- StrDupW(tProgramAction(result).args ,args);
-end;
-}
function tProgramAction.DoAction(var WorkData:tWorkData):LRESULT;
var
tmp,tmpp,lpath:PWideChar;
@@ -242,55 +231,6 @@ begin if (flags2 and ACF2_PRG_PRG)<>0 then flags:=flags or ACF_PRG_PRG;
if (flags2 and ACF2_PRG_ARG)<>0 then flags:=flags or ACF_PRG_ARG;
end;
-
- 1: begin
- StrDupW(prgname,xmlGetText(HXML(node)));
- StrDupW(args,xmlGetAttrValue(HXML(node),ioArgs));
- if StrToInt(xmlGetAttrValue(HXML(node),ioCurrent))=1 then
- flags:=flags or ACF_CURPATH;
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioParallel))=1 then
- flags:=flags or ACF_PRTHREAD
- else
- time:=StrToInt(xmlGetAttrValue(HXML(node),ioWait));
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioFileVariable))=1 then
- flags:=flags or ACF_PRG_PRG;
-
- if StrToInt(xmlGetAttrValue(HXML(node),ioArgVariable))=1 then
- flags:=flags or ACF_PRG_ARG;
-
- tmp:=xmlGetAttrValue(HXML(node),ioWindow);
- if lstrcmpiw(tmp,ioHidden )=0 then show:=SW_HIDE
- else if lstrcmpiw(tmp,ioMinimized)=0 then show:=SW_SHOWMINIMIZED
- else if lstrcmpiw(tmp,ioMaximized)=0 then show:=SW_SHOWMAXIMIZED
- else show:=SW_SHOWNORMAL;
- end;
-{
- 2: begin
- UTF8ToWide(GetParamSectionStr(node,ioProgram),prgname);
- UTF8ToWide(GetParamSectionStr(node,ioArgs ),args);
- if GetParamSectionInt(node,ioCurrent)=1 then
- flags:=flags or ACF_CURPATH;
-
- if GetParamSectionInt(node,ioParallel)=1 then
- flags:=flags or ACF_PRTHREAD
- else
- time:=GetParamSectionInt(node,ioWait);
-
- if GetParamSectionInt(node,ioFileVariable)=1 then
- flags:=flags or ACF_PRG_PRG;
-
- if GetParamSectionInt(node,ioArgVariable)=1 then
- flags:=flags or ACF_PRG_ARG;
-
- pc:=GetParamSectionStr(node,ioWindow);
- if lstrcmpi(pc,ioHidden )=0 then show:=SW_HIDE
- else if lstrcmpi(pc,ioMinimized)=0 then show:=SW_SHOWMINIMIZED
- else if lstrcmpi(pc,ioMaximized)=0 then show:=SW_SHOWMAXIMIZED
- else show:=SW_SHOWNORMAL;
- end;
-}
end;
end;
diff --git a/plugins/Actman/iac_service.pas b/plugins/Actman/iac_service.pas index 1868b89214..fd4a8e8e07 100644 --- a/plugins/Actman/iac_service.pas +++ b/plugins/Actman/iac_service.pas @@ -73,7 +73,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -94,30 +94,6 @@ begin inherited Destroy;
end;
-{
-function tServiceAction.Clone:tBaseAction;
-begin
- result:=tServiceAction.Create(0);
- Duplicate(result);
-
- tServiceAction(result).flags2 :=flags2;
- StrDup(tServiceAction(result).service,service);
-
- if (flags and (ACF_NUMBER or ACF_RESULT or ACF_PARAM))=0 then
- StrDup(pAnsiChar(tServiceAction(result).wparam),pAnsiChar(wparam))
- else if ((flags and ACF_NUMBER)<>0) and ((flags and ACF_SCRIPT_PARAM)<>0) then
- StrDup(pAnsiChar(tServiceAction(result).wparam),pAnsiChar(wparam))
- else
- tServiceAction(result).wparam:=wparam;
-
- if (flags2 and (ACF_NUMBER or ACF_RESULT or ACF_PARAM))=0 then
- StrDup(pAnsiChar(tServiceAction(result).lparam),pAnsiChar(lparam))
- else if ((flags2 and ACF_NUMBER)<>0) and ((flags and ACF_SCRIPT_PARAM)<>0) then
- StrDup(pAnsiChar(tServiceAction(result).lparam),pAnsiChar(lparam))
- else
- tServiceAction(result).lparam:=lparam;
-end;
-}
function tServiceAction.DoAction(var WorkData:tWorkData):LRESULT;
var
@@ -167,64 +143,11 @@ begin end;
end;
-function ReadParam(act:HXML; var param:pWideChar;isvar:boolean):dword;
-var
- tmp:pWideChar;
-begin
- result:=ACF_TYPE_NUMBER;
- if act=0 then
- exit;
-
- tmp:=xmlGetAttrValue(act,ioType);
- if lstrcmpiw(tmp,ioCurrent)=0 then result:=ACF_TYPE_CURRENT
- else if lstrcmpiw(tmp,ioResult )=0 then result:=ACF_TYPE_RESULT
- else if lstrcmpiw(tmp,ioParam )=0 then result:=ACF_TYPE_PARAM
- else if lstrcmpiw(tmp,ioStruct )=0 then
- begin
- result:=ACF_TYPE_STRUCT;
- end
- else
- begin
- StrDupW(pWideChar(param),xmlGetAttrValue(act,ioValue));
-
- if lstrcmpiw(tmp,ioNumber )=0 then result:=ACF_TYPE_NUMBER
- else if lstrcmpiw(tmp,ioUnicode)=0 then result:=ACF_TYPE_UNICODE
- else if lstrcmpiw(tmp,ioAnsi )=0 then result:=ACF_TYPE_STRING;
- end;
-end;
-{
-function ReadParamINI(node:pointer;prefix:pAnsiChar;var param:pWideChar;isvar:boolean):dword;
-var
- pc,pc1:pAnsiChar;
- buf:array [0..63] of AnsiChar;
-begin
- result:=0;
- pc1:=StrCopyE(buf,prefix);
- pc:=GetParamSectionStr(node,StrCopy(pc1,ioType));
- if lstrcmpi(pc,ioCurrent)=0 then result:=result or ACF_CURRENT
- else if lstrcmpi(pc,ioResult )=0 then result:=result or ACF_RESULT
- else if lstrcmpi(pc,ioParam )=0 then result:=result or ACF_PARAM
- else if lstrcmpi(pc,ioStruct )=0 then
- begin
- result:=result or ACF_STRUCT;
-//!!!! param:=ReadStruct(act);
- end
- else
- begin
- UTF8ToWide(GetParamSectionInt(node,StrCopy(pc1,ioValue)),param);
-
- if lstrcmpi(pc,ioNumber )=0 then result:=result or ACF_NUMBER
- else if lstrcmpi(pc,ioUnicode)=0 then result:=result or ACF_UNICODE;
-// else if lstrcmpi(pc,ioAnsi)=0 then;
- end;
-end;
-}
procedure tServiceAction.Load(node:pointer;fmt:integer);
var
section:array [0..127] of AnsiChar;
buf:array [0..31] of WideChar;
pc:pAnsiChar;
- sub:HXML;
tmp:pWideChar;
lflags,lflags2:dword;
begin
@@ -320,38 +243,6 @@ begin if (lflags2 and ACF2_FREEMEM )<>0 then service.flags:=service.flags or ACF_FLAG_FREEMEM;
if (lflags2 and ACF2_SRV_SRVC)<>0 then service.flags:=service.flags or ACF_FLAG_SCRIPT;
end;
-
- 1: begin
- service.flags :=0;
- service.w_flags:=0;
- service.l_flags:=0;
-
- FastWideToAnsi(xmlGetAttrValue(HXML(node),ioService),service.service);
- if StrToInt(xmlGetAttrValue(HXML(node),ioVariables))=1 then
- service.flags:=service.flags or ACF_FLAG_SCRIPT;
-
- sub:=xmlGetNthChild(HXML(node),ioWParam,0);
- if StrToInt(xmlGetAttrValue(sub,ioVariables))=1 then
- service.w_flags:=service.w_flags or ACF_FLAG_SCRIPT;
- service.w_flags:=service.w_flags or
- ReadParam(sub,PWideChar(service.wparam),(service.w_flags and ACF_FLAG_SCRIPT)<>0);
-
- sub:=xmlGetNthChild(HXML(node),ioLParam,0);
- if StrToInt(xmlGetAttrValue(sub,ioVariables))=1 then
- service.l_flags:=service.l_flags or ACF_FLAG_SCRIPT;
- service.l_flags:=service.l_flags or
- ReadParam(sub,PWideChar(service.lparam),(service.l_flags and ACF_FLAG_SCRIPT)<>0);
-
- sub:=xmlGetNthChild(HXML(node),ioOutput,0);
- if StrToInt(xmlGetAttrValue(sub,ioFree))=1 then
- service.flags:=service.flags or ACF_FLAG_FREEMEM;
-
- tmp:=xmlGetAttrValue(sub,ioType);
- if lstrcmpiw(tmp,ioUnicode)=0 then service.flags:=service.flags or ACF_TYPE_UNICODE
- else if lstrcmpiw(tmp,ioAnsi )=0 then service.flags:=service.flags or ACF_TYPE_STRING
- else if lstrcmpiw(tmp,ioStruct )=0 then service.flags:=service.flags or ACF_TYPE_STRUCT
- else if lstrcmpiw(tmp,ioInt )=0 then service.flags:=service.flags or ACF_TYPE_NUMBER;
- end;
end;
end;
@@ -369,10 +260,7 @@ begin StrCopy(pc,opt_service);
SaveServiceValue(service,DBBranch,section);
end;
-{
- 1: begin
- end;
-}
+
13: begin
end;
end;
diff --git a/plugins/Actman/iac_storage.pas b/plugins/Actman/iac_storage.pas index 186e88240a..55111c2daf 100644 --- a/plugins/Actman/iac_storage.pas +++ b/plugins/Actman/iac_storage.pas @@ -28,7 +28,6 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -50,14 +49,7 @@ begin inherited Destroy;
end;
-{
-function tStorageAction.Clone:tBaseAction;
-begin
- result:=.Create(0);
- Duplicate(result);
-end;
-}
function tStorageAction.DoAction(var WorkData:tWorkData):LRESULT;
var
num:integer;
@@ -153,12 +145,6 @@ begin pc:=StrCopyE(section,pAnsiChar(node));
StrCopy(pc,opt_number); Number:=DBReadByte(0,DBBranch,section,0);
end;
-
- 1: begin
- if lstrcmpiw(xmlGetAttrValue(HXML(node),ioOper),ioCopy)=1 then
- flags:=flags or ACF_COPYFROM;
- Number:=StrToInt(xmlGetAttrValue(HXML(node),ioNumber));
- end;
end;
end;
@@ -173,10 +159,7 @@ begin pc:=StrCopyE(section,pAnsiChar(node));
StrCopy(pc,opt_number); DBWriteByte(0,DBBranch,section,Number);
end;
-{
- 1: begin
- end;
-}
+
13: begin
tTextExport(node).AddDWord('slot',Number);
tTextExport(node).AddFlag ('copy',(flags or ACF_COPYFROM)<>0);
diff --git a/plugins/Actman/iac_text.pas b/plugins/Actman/iac_text.pas index 8614d6430e..ee7830d39b 100644 --- a/plugins/Actman/iac_text.pas +++ b/plugins/Actman/iac_text.pas @@ -36,7 +36,7 @@ type public
constructor Create(uid:dword);
destructor Destroy; override;
-// function Clone:tBaseAction; override;
+
function DoAction(var WorkData:tWorkData):LRESULT; override;
procedure Save(node:pointer;fmt:integer); override;
procedure Load(node:pointer;fmt:integer); override;
@@ -59,14 +59,7 @@ begin inherited Destroy;
end;
-{
-function tTextAction.Clone:tBaseAction;
-begin
- result:=.Create(0);
- Duplicate(result);
-end;
-}
type
trec = record
text:PAnsiChar;
@@ -359,14 +352,6 @@ begin StrCopy(pc,'varval'); text:=DBReadUnicode(0,DBBranch,section);
flags:=flags or ACF_TEXTSCRIPT;
end;
-
- 1: begin
- StrDupW(text,xmlGetText(HXML(node)));
- if StrToInt(xmlGetAttrValue(HXML(node),ioVariables))=1 then
- flags:=flags or ACF_TEXTSCRIPT;
- if StrToInt(xmlGetAttrValue(HXML(node),ioPost))=1 then
- flags:=flags or ACF_POSTPROCESS;
- end;
end;
end;
@@ -382,10 +367,7 @@ begin StrCopy(pc,opt_text); DBWriteUnicode(0,DBBranch,section,text);
end;
-{
- 1: begin
- end;
-}
+
13: begin
tTextExport(node).AddTextW('text' ,text);
tTextExport(node).AddFlag ('script' ,(flags or ACF_TEXTSCRIPT )<>0);
diff --git a/plugins/Actman/inoutxml.pas b/plugins/Actman/inoutxml.pas deleted file mode 100644 index bcf91222bf..0000000000 --- a/plugins/Actman/inoutxml.pas +++ /dev/null @@ -1,145 +0,0 @@ -unit inoutxml;
-
-interface
-
-uses windows, lowlevelc;
-
-function Import(list:tMacroList;fname:PWideChar;aflags:dword):integer;
-
-implementation
-
-uses
- io, common, m_api, question,
- iac_global, global;
-
-const
- ioAction = 'Action';
- ioClass = 'class';
- ioName = 'name';
- ioVolatile = 'volatile';
-const
- imp_yes = 1;
- imp_yesall = 2;
- imp_no = 3;
- imp_noall = 4;
- imp_append = 5;
-
-function ImportAction(actnode:HXML):tBaseAction;
-var
- pa:pActModule;
- buf:array [0..127] of AnsiChar;
-begin
- result:=nil;
- if actnode=0 then exit;
- pa:=GetLinkByName(FastWideToAnsiBuf(xmlGetAttrValue(actnode,ioClass),buf));
- if pa<>nil then
- begin
- result:=pa.Create;
- result.Load(pointer(actnode),1);
- end
- else
- result:=tBaseAction(1);
-end;
-
-function Import(list:tMacroList;fname:PWideChar;aflags:dword):integer;
-var
- f:THANDLE;
- i,nodenum,actcnt:integer;
- tmp,res:pWideChar;
- root,actnode:HXML;
- impact:integer;
- buf:array [0..511] of WideChar;
- oldid:dword;
- arr:array [0..63] of tBaseAction;
- act:tBaseAction;
- p:pMacroRecord;
-begin
- result:=0;
-
- for i:=0 to list.Count-1 do
- with list[i]^ do
- if (flags and (ACF_IMPORT or ACF_ASSIGNED))=
- (ACF_IMPORT or ACF_ASSIGNED) then
- flags:=flags and not (ACF_IMPORT or ACF_OVERLOAD);
-
- if (fname=nil) or (fname^=#0) then
- exit;
- i:=GetFSize(fname);
- if i=0 then
- exit;
- mGetMem (res ,i+SizeOf(WideChar));
- FillChar(res^,i+SizeOf(WideChar),0);
- f:=Reset(fname);
- BlockRead(f,res^,i);
- CloseHandle(f);
-
- root:=xmlParseString(ChangeUnicode(res),@i,nil);
- nodenum:=0;
- impact:=imp_yes;
- repeat
- actnode:=xmlGetNthChild(root,ioAction,nodenum);
- if actnode=0 then break;
- tmp:=xmlGetAttrValue(actnode,ioName);
- if tmp<>nil then //!!
- begin
- p:=list.GetMacro(tmp);
- oldid:=$FFFFFFFF;
- if p<>nil then
- begin
- if (impact<>imp_yesall) and (impact<>imp_noall) then
- begin
- StrCopyW(buf,TranslateW('Action "$" exists, do you want to rewrite it?'));
- impact:=ShowQuestion(StrReplaceW(buf,'$',tmp));
- end;
- if (impact=imp_yesall) or (impact=imp_yes) then
- begin
- oldid:=p^.id;
- FreeMacro(p);
- end;
- end;
- // if new or overwriting then read macro details/actions
- if (p=nil) or (impact=imp_yesall) or (impact=imp_yes) or (impact=imp_append) then
- begin
- with List[list.NewMacro()]^ do
- begin
- if (p<>nil) and (oldid<>$FFFFFFFF) then // set old id to keep UseAction setting
- begin
- flags:=flags or ACF_IMPORT or ACF_OVERLOAD;
- id:=oldid;
- end
- else
- flags:=flags or ACF_IMPORT;
- if StrToInt(xmlGetAttrValue(actnode,ioVolatile))=1 then flags:=flags or ACF_VOLATILE;
- StrCopyW(descr,tmp,MacroNameLen-1);
-
- // reading actions
- actcnt:=0; // count in file
- ActionCount:=0; // amount of loaded
- repeat
- act:=ImportAction(xmlGetChild(actnode,actcnt));
- if act=nil then
- break;
- if uint_ptr(act)<>1 then
- begin
- arr[ActionCount]:=act;
- inc(ActionCount);
- end;
- inc(actcnt);
- until false;
- // moving actions to their place
- if Actioncount>0 then
- begin
- GetMem(ActionList,SizeOf(tBaseAction)*ActionCount);
- move(arr,ActionList^,SizeOf(tBaseAction)*ActionCount);
- end;
- inc(result);
- end;
- end;
- end;
- inc(nodenum);
- until false;
- xmlDestroyNode(root);
- mFreeMem(res);
-end;
-
-end.
diff --git a/plugins/Actman/ua/i_inoutjson.inc b/plugins/Actman/ua/i_inoutjson.inc index 95f793e9f2..e06474c5e3 100644 --- a/plugins/Actman/ua/i_inoutjson.inc +++ b/plugins/Actman/ua/i_inoutjson.inc @@ -194,7 +194,7 @@ end; //--------------------------
-function ExportMenuItems(node:JSONNODE;MenuItem:tUAMenuItem):HXML;
+function ExportMenuItems(node:JSONNODE;MenuItem:tUAMenuItem):JSONNODE;
begin
with jsonparser do
begin
diff --git a/plugins/Actman/ua/i_inoutxm.inc b/plugins/Actman/ua/i_inoutxm.inc deleted file mode 100644 index 4a539a8275..0000000000 --- a/plugins/Actman/ua/i_inoutxm.inc +++ /dev/null @@ -1,334 +0,0 @@ -{}
-
-const
- ioAction :PWideChar = 'Action';
- ioUA :PWideChar = 'UA';
-
- ioName :PWideChar = 'name';
-
- ioTwoState :PWideChar = 'twostate';
- ioSaveState :PWideChar = 'savestate';
-
- ioHotkey :PWideChar = 'Hotkey';
- ioToolbar :PWideChar = 'Toolbar';
- ioTabSRMM :PWideChar = 'TabSRMM';
- ioMenuItem :PWideChar = 'Menu';
-
- ioTooltip :PWideChar = 'tooltip';
- ioTooltipPressed :PWideChar = 'tt_pressed';
-
- ioType :PWideChar = 'type';
- ioMenuPopup :PWideChar = 'Popup';
- ioMenuName :PWideChar = 'Name';
- ioMenuShow :PWideChar = 'Show';
- ioMenuUsed :PWideChar = 'Used';
- ioMenuSeparated :PWideChar = 'Separated';
- ioNoTranslate :PWideChar = 'NoTranslate';
-
-
-function ImportMenuItems(node:HXML;var MenuItem:tUAMenuItem):integer;
-begin
- result:=0;
-
- with MenuItem do
- begin
- menu_opt:=0;
- // popup
- StrDupW(szMenuPopup,xmlGetAttrValue(node,ioMenuPopup));
- // name
- StrDupW(szMenuNameVars,xmlGetAttrValue(node,ioMenuName));
- // show
- StrDupW(szMenuShowWhenVars,xmlGetAttrValue(node,ioMenuShow));
- // used
- if StrToInt(xmlGetAttrValue(node,ioMenuUsed))<>0 then
- menu_opt:=menu_opt or UAF_MENUUSE;
- // separated
- if StrToInt(xmlGetAttrValue(node,ioMenuSeparated))<>0 then
- menu_opt:=menu_opt or UAF_MENUSEP;
- // no translate
- if StrToInt(xmlGetAttrValue(node,ioNoTranslate))<>0 then
- menu_opt:=menu_opt or UAF_NOTRANS;
- end;
-end;
-
-function ImportUAction(actnode:HXML;var UA:tMyActionItem):integer;
-var
- num,i:integer;
- sub:HXML;
-begin
- result:=0;
- if actnode=0 then exit;
-
- UA.flags:=0;
- // ----- Common -----
- if StrToInt(xmlGetAttrValue(actnode,ioTwoState))<>0 then
- UA.flags:=UA.flags or UAF_2STATE;
-
- if StrToInt(xmlGetAttrValue(actnode,ioSaveState))<>0 then
- UA.flags:=UA.flags or UAF_SAVESTATE;
-
- if StrToInt(xmlGetAttrValue(actnode,ioHotkey))<>0 then
- UA.flags:=UA.flags or UAF_REGHOTKEY;
- if StrToInt(xmlGetAttrValue(actnode,ioToolbar))<>0 then
- UA.flags:=UA.flags or UAF_REGTTBB;
- if StrToInt(xmlGetAttrValue(actnode,ioTabSRMM))<>0 then
- UA.flags:=UA.flags or UAF_REGTABB;
-
- // ----- Hotkey -----
- // nothing
-
- // ----- Modern CList toolbar -----
- // source - ANSI text
- sub:=xmlGetNthChild(actnode,ioToolbar,0);
- WideToAnsi(xmlGetAttrValue(sub,ioTooltip ),UA.szTTBTooltip ,MirandaCP);
- WideToAnsi(xmlGetAttrValue(sub,ioTooltipPressed),UA.szTTBTooltipPressed,MirandaCP);
-
- // ----- TabSRMM toolbar -----
- sub:=xmlGetNthChild(actnode,ioTabSRMM,0);
- StrDupW(UA.szTabBTooltip ,xmlGetAttrValue(sub,ioTooltip));
- StrDupW(UA.szTabBTooltipPressed,xmlGetAttrValue(sub,ioTooltipPressed));
-
- // ----- Menus -----
- num:=0;
- repeat
- sub:=xmlGetNextChild(actnode,ioMenuItem,@num);
- if sub=0 then break;
-
- i:=StrToInt(xmlGetAttrValue(sub,ioType));
- ImportMenuItems(sub,UA.UAMenuItem[tMenuType(i)]);
- until false;
-end;
-
-function Import(fname:PWideChar;aflags:dword):integer;
-var
- i,j,act:integer;
- root,actnode:HXML;
- pcw,res:pWideChar;
- f:THANDLE;
- num,num1:integer;
- ptr,ptr1:pChain;
-begin
- result:=0;
-
- if (fname=nil) or (fname^=#0) then
- exit;
- i:=GetFSize(fname);
- if i=0 then
- exit;
-
- num:=CallService(MS_ACT_GETLIST,0,LPARAM(@ptr));
- if num=0 then exit;
- ptr1:=ptr;
-
- mGetMem (res ,i+SizeOf(WideChar));
- FillChar(res^,i+SizeOf(WideChar),0);
- f:=Reset(fname);
- BlockRead(f,res^,i);
- CloseHandle(f);
-
- root:=xmlParseString(ChangeUnicode(res),@i,nil);
- j:=0;
- repeat
- actnode:=xmlGetNthChild(root,ioAction,j);
- if actnode=0 then break;
- // search id by name?
- pcw:=xmlGetAttrValue(actnode,ioName);
- ptr:=ptr1;
- inc(pbyte(ptr),4);
- for i:=0 to num-1 do
- begin
- if (ptr.flags and ACF_SELECTED)<>0 then
- begin
- if StrCmpw(pcw,ptr.descr)=0 then
- begin
- // delete old UA for overwrited actions
- if (ptr.flags and ACF_OVERLOAD)<>0 then
- begin
- for act:=0 to HIGH(UActionList) do
- begin
- if ptr.id=UActionList[act].dwActID then
- begin
- DeleteUAction(act,true);
- break;
- end;
- end;
- end;
- num1:=AddUAction(-1,ptr);
- ImportUAction(xmlGetNthChild(actnode,ioUA,0),UActionList[num1]);
- break;
- end;
- end;
- inc(ptr);
- end;
-
- inc(j);
- until false;
- xmlDestroyNode(root);
-
- CallService(MS_ACT_FREELIST,0,LPARAM(ptr1));
- mFreeMem(res);
- result:=1;
- if settings<>0 then
- begin
- FillActionList(settings);
- ShowAction(settings,-1);
- end;
-end;
-
-//--------------------------
-
-function ExportMenuItems(node:HXML;const MenuItem:tUAMenuItem):HXML;
-begin
- result:=xmlAddChild(node,ioMenuItem,nil);
- with MenuItem do
- begin
- // popup
- if (szMenuPopup<>nil) and (szMenuPopup^<>#0) then
- xmlAddAttr(result,ioMenuPopup,szMenuPopup);
- // name
- if (szMenuNameVars<>nil) and (szMenuNameVars^<>#0) then
- xmlAddAttr(result,ioMenuName,szMenuNameVars);
- // show
- if (szMenuShowWhenVars<>nil) and (szMenuShowWhenVars^<>#0) then
- xmlAddAttr(result,ioMenuShow,szMenuShowWhenVars);
- // used
- xmlAddAttrInt(result,ioMenuUsed,ord((menu_opt AND UAF_MENUUSE)<>0));
- // separated
- xmlAddAttrInt(result,ioMenuSeparated,ord((menu_opt AND UAF_MENUSEP)<>0));
- // no translate
- xmlAddAttrInt(result,ioNoTranslate,ord((menu_opt AND UAF_NOTRANS)<>0));
- end;
-end;
-
-procedure WriteUAction(root:HXML;id:dword;name:pWideChar);
-var
- i:integer;
- lmenu:tMenuType;
- pc:pWideChar;
- actnode,sub:HXML;
- UA:pMyActionItem;
-begin
- for i:=0 to HIGH(UActionList) do
- begin
- if UActionList[i].dwActID=id then
- begin
- UA:=@UActionList[i];
- actnode:=xmlGetChildByAttrValue(root,ioAction,ioName,name);
- if actnode=0 then break;
- // we don't need that node as is, just it's child for UA
- actnode:=xmlAddChild(actnode,ioUA,nil);
-
- // ----- Common -----
- xmlAddAttrInt(actnode,ioTwoState ,ORD((UA.flags and UAF_2STATE )<>0));
- xmlAddAttrInt(actnode,ioSaveState,ORD((UA.flags and UAF_SAVESTATE)<>0));
-
- xmlAddAttrInt(actnode,ioHotkey ,ORD((UA.flags and UAF_REGHOTKEY)<>0));
- xmlAddAttrInt(actnode,ioToolbar,ORD((UA.flags and UAF_REGTTBB )<>0));
- xmlAddAttrInt(actnode,ioTabSRMM,ORD((UA.flags and UAF_REGTABB )<>0));
-
- // ----- Hotkey -----
- // nothing
-
- // ----- Modern CList toolbar -----
- // source - ANSI text
- if ((UA.szTTBTooltip <>nil) and (UA.szTTBTooltip^ <>#0)) or
- ((UA.szTTBTooltipPressed<>nil) and (UA.szTTBTooltipPressed^<>#0)) then
- begin
- sub:=xmlAddChild(actnode,ioToolbar,nil);
- if (UA.szTTBTooltip<>nil) and (UA.szTTBTooltip^<>#0) then
- begin
- AnsiToWide(UA.szTTBTooltip,pc,MirandaCP);
- xmlAddAttr(sub,ioTooltip,pc);
- mFreeMem(pc);
- end;
- if (UA.szTTBTooltipPressed<>nil) and (UA.szTTBTooltipPressed^<>#0) then
- begin
- AnsiToWide(UA.szTTBTooltipPressed,pc,MirandaCP);
- xmlAddAttr(sub,ioTooltipPressed,pc);
- mFreeMem(pc);
- end;
- end;
-
- // ----- TabSRMM toolbar -----
- if ((UA.szTabBTooltip <>nil) and (UA.szTabBTooltip^ <>#0)) or
- ((UA.szTabBTooltipPressed<>nil) and (UA.szTabBTooltipPressed^<>#0)) then
- begin
- sub:=xmlAddChild(actnode,ioTabSRMM,nil);
- if (UA.szTabBTooltip<>nil) and (UA.szTabBTooltip^<>#0) then
- xmlAddAttr(sub,ioTooltip,UA.szTabBTooltip);
- if (UA.szTabBTooltipPressed<>nil) and (UA.szTabBTooltipPressed^<>#0) then
- xmlAddAttr(sub,ioTooltipPressed,UA.szTabBTooltipPressed);
- end;
-
- // ----- Menus -----
- for lmenu:=main_menu to HIGH(tMenuType) do
- begin
- sub:=ExportMenuItems(actnode,UA.UAMenuItem[lmenu]);
- xmlAddAttrInt(sub,ioType,ORD(lmenu));
- end;
-
- break;
- end;
- end;
-end;
-
-function Export(fname:pWideChar;aflags:dword):integer;
-var
- i,num:integer;
- f:THANDLE;
- root:HXML;
- res:pWideChar;
- ptr,ptr1:pChain;
-begin
- result:=0;
-
- // we need append file, not rewrite
- i:=GetFSize(fname);
- if i=0 then exit;
-
- mGetMem (res ,i+SizeOf(WideChar));
- FillChar(res^,i+SizeOf(WideChar),0);
- f:=Reset(fname);
- BlockRead(f,res^,i);
- CloseHandle(f);
- root:=xmlParseString(res,@i,nil);
- mFreeMem(res);
-
- num:=CallService(MS_ACT_GETLIST,0,LPARAM(@ptr));
- if num>0 then
- begin
- ptr1:=ptr;
- inc(pbyte(ptr),4);
- for i:=0 to num-1 do
- begin
- if ((aflags and ACIO_SELECTED)=0) or
- ((ptr.flags and ACCF_EXPORT)<>0) then
- begin
- WriteUAction(root,ptr.id,ptr.descr);
- end;
- inc(ptr);
- end;
- CallService(MS_ACT_FREELIST,0,LPARAM(ptr1));
- end;
-
- res:=xmlToString(root,@i);
-
- f:=Rewrite(fname);
- BlockWrite(f,res^,i*SizeOf(WideChar));
- CloseHandle(f);
- xmlFree(res);
- xmlDestroyNode(root);
- result:=1;
-end;
-
-function ActInOut(wParam:WPARAM;lParam:LPARAM):int_ptr; cdecl;
-begin
- if (wParam and ACIO_EXPORT)=0 then
- begin
- result:=Import(pWideChar(lParam),wParam);
- end
- else
- begin
- result:=Export(pWideChar(lParam),wParam);
- end;
-end;
diff --git a/plugins/Actman/ua/ua.pas b/plugins/Actman/ua/ua.pas index da59fda540..7f3c9e1b61 100644 --- a/plugins/Actman/ua/ua.pas +++ b/plugins/Actman/ua/ua.pas @@ -43,7 +43,6 @@ var {$include i_options.inc}
{$include i_opt_dlg.inc}
{$include i_ua.inc}
-{$include i_inoutxm.inc}
// ------------ base interface functions -------------
@@ -78,8 +77,6 @@ begin HookEvent(ME_CLIST_PREBUILDMAINMENU , PreBuildMainMenu);
HookEvent(ME_CLIST_PREBUILDCONTACTMENU, PreBuildContactMenu);
HookEvent(ME_CLIST_PREBUILDTRAYMENU , PreBuildTrayMenu);
-
- HookEvent(ME_ACT_INOUT,@ActInOut);
end;
procedure DeInit;
diff --git a/plugins/Watrack/lastfm/i_last_api.inc b/plugins/Watrack/lastfm/i_last_api.inc index a5be3d3111..3d58bd27dd 100644 --- a/plugins/Watrack/lastfm/i_last_api.inc +++ b/plugins/Watrack/lastfm/i_last_api.inc @@ -265,318 +265,3 @@ begin else
StrDupW(result,Info);
end;
-
-function GetArtistInfo(var data:tLastFMInfo;lang:integer):int;
-var
- si:pSongInfo;
- res,pc:pAnsiChar;
- request:array [0..1023] of AnsiChar;
- root,actnode,node,nnode:HXML;
- i:integer;
- pcw,p,pp:PWideChar;
- artist:pAnsiChar;
-begin
- result:=0;
- if data.artist=nil then
- begin
- si:=pointer(CallService(MS_WAT_RETURNGLOBAL,WAT_INF_UNICODE,0));
- pWideChar(artist):=si^.artist;
- end
- else
- pWideChar(artist):=data.artist;
- if artist=nil then
- exit;
- WideToUTF8(pWideChar(artist),artist);
- pc:=FullEncode(StrCopyE(request,
- 'http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&api_key='+api_key+'&artist='),
- artist);
- mFreeMem(artist);
- if lang<>0 then
- StrCopyE(StrCopyE(pc,'&lang='),pAnsiChar(@lang));
- res:=SendRequest(request,REQUEST_GET);
- if (res<>nil) and (uint_ptr(res)>$0FFF) then
- begin
- UTF8ToWide(res,pcw);
- mFreeMem(res);
-
- i:=StrLenW(pcw)*SizeOf(WideChar);
- root:=xmlParseString(pcw,@i,nil);
-
- actnode:=xmlGetChild(xmlGetChild(root,0),0); // "artist"
-
- if data.artist=nil then
- StrDupW(data.artist,xmlGetText(xmlGetNthChild(actnode,'name',0)));
-
- i:=0;
- repeat
- node:=xmlGetNthChild(actnode,'image',i);
- if node=0 then break;
- if StrCmpW(xmlGetAttrValue(node,'size'),'medium')=0 then
- begin
- WideToUTF8(xmlGetText(node),data.image);
- break;
- end;
- inc(i);
- until false;
-
- // bio
- p:=StrPosW(pcw,'<content><![CDATA[');
- if p<>nil then
- begin
- inc(p,18);
- pp:=StrPosW(p,']]');
- if pp<> nil then pp^:=#0;
- data.info:=FixInfo(p);
- end;
-
- // similar
- i:=0;
- pcw:=pWideChar(@request); pcw^:=#0;
- node:=xmlGetNthChild(actnode,'similar',0);
- repeat
- nnode:=xmlGetNthChild(xmlGetNthChild(node,'artist',i),'name',0);
- if nnode=0 then break;
- if pcw<>@request then
- begin
- pcw^:=','; inc(pcw);
- pcw^:=' '; inc(pcw);
- end;
- pcw:=StrCopyEW(pcw,xmlGetText(nnode));
- inc(i);
- until false;
- pcw:=#0;
- StrDupW(data.similar,pWideChar(@request));
-
- // tags
- i:=0;
- pcw:=pWideChar(@request); pcw^:=#0;
- node:=xmlGetNthChild(actnode,'tags',0);
- repeat
- nnode:=xmlGetNthChild(xmlGetNthChild(node,'tag',i),'name',0);
- if nnode=0 then break;
- if pcw<>@request then
- begin
- pcw^:=','; inc(pcw);
- pcw^:=' '; inc(pcw);
- end;
- pcw:=StrCopyEW(pcw,xmlGetText(nnode));
- inc(i);
- until false;
- pcw:=#0;
- StrDupW(data.tags,pWideChar(@request));
- xmlDestroyNode(root);
- end;
-end;
-
-function GetAlbumInfo(var data:tLastFMInfo;lang:integer):int;
-var
- si:pSongInfo;
- res,pc:pAnsiChar;
- request:array [0..1023] of AnsiChar;
- root,actnode,node,nnode:HXML;
- i:integer;
- p,pp,pcw:PWideChar;
- album,artist:pAnsiChar;
-begin
- result:=0;
- si:=nil;
- if data.album=nil then
- begin
- si:=pointer(CallService(MS_WAT_RETURNGLOBAL,WAT_INF_UNICODE,0));
- pWideChar(album):=si^.album;
- end
- else
- pWideChar(album):=data.album;
- if album=nil then
- exit;
- WideToUTF8(pWideChar(album),album);
- pc:=FullEncode(StrCopyE(request,
- 'http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key='+api_key+'&album='),
- album);
- mFreeMem(album);
- if data.artist=nil then
- begin
- if si=nil then
- si:=pointer(CallService(MS_WAT_RETURNGLOBAL,WAT_INF_UNICODE,0));
- pWideChar(artist):=si^.artist;
- end
- else
- pWideChar(artist):=data.artist;
- if artist<>nil then
- begin
- WideToUTF8(pWideChar(artist),artist);
- pc:=FullEncode(StrCopyE(pc,'&artist='),artist);
- mFreeMem(artist);
- end;
-
- if lang<>0 then
- StrCopyE(StrCopyE(pc,'&lang='),pAnsiChar(@lang));
-
- res:=SendRequest(request,REQUEST_GET);
- if res<>nil then
- begin
- UTF8ToWide(res,pcw);
- mFreeMem(res);
-
- i:=StrLenW(pcw)*SizeOf(WideChar);
- root:=xmlParseString(pcw,@i,nil);
-
- actnode:=xmlGetChild(xmlGetChild(root,0),0); // "album"
-
- if data.album=nil then
- StrDupW(data.album,xmlGetText(xmlGetNthChild(actnode,'name',0)));
- StrDupW(data.release,xmlGetText(xmlGetNthChild(actnode,'releasedate',0)));
- if data.artist=nil then
- StrDupW(data.artist,xmlGetText(xmlGetNthChild(actnode,'artist',0)));
-
- i:=0;
- repeat
- node:=xmlGetNthChild(actnode,'image',i);
- if node=0 then break;
- if StrCmpW(xmlGetAttrValue(node,'size'),'medium')=0 then
- begin
- WideToUTF8(xmlGetText(node),data.image);
- break;
- end;
- inc(i);
- until false;
-
- p:=StrPosW(pcw,'<content><![CDATA[');
- if p<>nil then
- begin
- inc(p,18);
- pp:=StrPosW(p,']]');
- if pp<> nil then pp^:=#0;
- data.info:=FixInfo(p);
- end;
-
- // tags
- i:=0;
- pcw:=pWideChar(@request); pcw^:=#0;
- node:=xmlGetNthChild(actnode,'toptags',0);
- repeat
- nnode:=xmlGetNthChild(xmlGetNthChild(node,'tag',i),'name',0);
- if nnode=0 then break;
- if pcw<>@request then
- begin
- pcw^:=','; inc(pcw);
- pcw^:=' '; inc(pcw);
- end;
- pcw:=StrCopyEW(pcw,xmlGetText(nnode));
- inc(i);
- until false;
- pcw:=#0;
- StrDupW(data.tags,pWideChar(@request));
-
- xmlDestroyNode(root);
- end;
-end;
-
-function GetTrackInfo(var data:tLastFMInfo;lang:integer):int;
-var
- si:pSongInfo;
- res,pc:pAnsiChar;
- request:array [0..1023] of AnsiChar;
- root,actnode,node,anode:HXML;
- i:integer;
- p,pp,pcw:PWideChar;
- title,artist:pAnsiChar;
-begin
- result:=0;
- si:=nil;
- if data.album=nil then
- begin
- si:=pointer(CallService(MS_WAT_RETURNGLOBAL,WAT_INF_UNICODE,0));
- pWideChar(title):=si^.title;
- end
- else
- pWideChar(title):=data.title;
- if title=nil then
- exit;
- WideToUTF8(pWideChar(title),title);
- pc:=FullEncode(StrCopyE(request,
- 'http://ws.audioscrobbler.com/2.0/?method=track.getinfo&api_key='+api_key+'&track='),
- title);
- mFreeMem(title);
- if data.artist=nil then
- begin
- if si=nil then
- si:=pointer(CallService(MS_WAT_RETURNGLOBAL,WAT_INF_UNICODE,0));
- pWideChar(artist):=si^.artist;
- end
- else
- pWideChar(artist):=data.artist;
- if artist<>nil then
- begin
- WideToUTF8(pWideChar(artist),artist);
- pc:=FullEncode(StrCopyE(pc,'&artist='),artist);
- mFreeMem(artist);
- end;
-
- if lang<>0 then
- StrCopyE(StrCopyE(pc,'&lang='),pAnsiChar(@lang));
-
- res:=SendRequest(request,REQUEST_GET);
- if res<>nil then
- begin
- UTF8ToWide(res,pcw);
- mFreeMem(res);
-
- i:=StrLenW(pcw)*SizeOf(WideChar);
- root:=xmlParseString(pcw,@i,nil);
-
- actnode:=xmlGetChild(xmlGetChild(root,0),0); // "track"
- if data.artist=nil then
- StrDupW(data.artist,xmlGetText(xmlGetNthChild(xmlGetNthChild(actnode,'artist',0),'name',0)));
-
- anode:=xmlGetNthChild(actnode,'album',i);
-
- if data.album=nil then
- StrDupW(data.album,xmlGetText(xmlGetNthChild(anode,'title',0)));
-
- data.trknum:=StrToInt(xmlGetAttrValue(anode,'position'));
- if data.title=nil then
- StrDupW(data.title,xmlGetText(xmlGetNthChild(actnode,'name',0)));
-
- i:=0;
- repeat
- node:=xmlGetNthChild(anode,'image',i);
- if node=0 then break;
- if StrCmpW(xmlGetAttrValue(node,'size'),'medium')=0 then
- begin
- WideToUTF8(xmlGetText(node),data.image);
- break;
- end;
- inc(i);
- until false;
-
- p:=StrPosW(pcw,'<content><![CDATA[');
- if p<>nil then
- begin
- inc(p,18);
- pp:=StrPosW(p,']]');
- if pp<> nil then pp^:=#0;
- data.info:=FixInfo(p);
- end;
-
- // tags
- i:=0;
- pcw:=pWideChar(@request); pcw^:=#0;
- node:=xmlGetNthChild(actnode,'toptags',0);
- repeat
- anode:=xmlGetNthChild(xmlGetNthChild(node,'tag',i),'name',0);
- if anode=0 then break;
- if pcw<>@request then
- begin
- pcw^:=','; inc(pcw);
- pcw^:=' '; inc(pcw);
- end;
- pcw:=StrCopyEW(pcw,xmlGetText(anode));
- inc(i);
- until false;
- pcw:=#0;
- StrDupW(data.tags,pWideChar(@request));
-
- xmlDestroyNode(root);
- end;
-end;
diff --git a/plugins/Watrack/lastfm/i_last_dlg.inc b/plugins/Watrack/lastfm/i_last_dlg.inc index 44beb5bdf7..ab15fc8cd2 100644 --- a/plugins/Watrack/lastfm/i_last_dlg.inc +++ b/plugins/Watrack/lastfm/i_last_dlg.inc @@ -69,16 +69,11 @@ begin if loword(wParam)=IDC_INFO_ARTIST then
begin
SetDlgItemTextW(Dialog,IDC_ALT,TranslateW('Similar artists'));
- GetArtistInfo(data,lfm_lang);
SetDlgItemTextW(Dialog,IDC_DATA_ALBUM,data.similar);
end
else
begin
SetDlgItemTextW(Dialog,IDC_ALT,TranslateW('Album'));
- if loword(wParam)=IDC_INFO_TRACK then
- GetTrackInfo (data,lfm_lang)
- else
- GetAlbumInfo (data,lfm_lang);
SetDlgItemTextW(Dialog,IDC_DATA_ALBUM,data.album);
end;
diff --git a/plugins/Watrack/lastfm/lastfm.pas b/plugins/Watrack/lastfm/lastfm.pas index 2c0428de6b..f83601f966 100644 --- a/plugins/Watrack/lastfm/lastfm.pas +++ b/plugins/Watrack/lastfm/lastfm.pas @@ -132,16 +132,8 @@ end; {$i i_last_dlg.inc}
function SrvLastFMInfo(wParam:WPARAM;lParam:LPARAM):int;cdecl;
-var
- data:tLastFMInfo;
begin
- case wParam of
- 0: result:=GetArtistInfo(data,lParam);
- 1: result:=GetAlbumInfo (data,lParam);
- 2: result:=GetTrackInfo (data,lParam);
- else
- result:=0;
- end;
+ result:=0;
end;
function SrvLastFM(wParam:WPARAM;lParam:LPARAM):int;cdecl;
|