{Popup options saving-loading}

const
  defPopupTitle    = 'Now listening to';
  defPopupText     = '%artist% - %title%';
  defAltPopupTitle = 'Now ?ifgreater(%width%,0,watching,listening to)';
  defAltPopupText  = '%artist% - %title%'#13#10'?iflonger(%album%,0, (from "%album%"),)';
const
  opt_ModStatus  :PAnsiChar = 'module/popups';

  opt_PopupFile   :PAnsiChar = 'popup/file';
  opt_PopupAction :PAnsiChar = 'popup/action';
  opt_PopupFore   :PAnsiChar = 'popup/fore';
  opt_PopupBack   :PAnsiChar = 'popup/back';
  opt_PopupPause  :PAnsiChar = 'popup/time';
  opt_PopupDelay  :PAnsiChar = 'popup/delay';
  opt_PopupColor  :PAnsiChar = 'popup/color';
  opt_ByRequest   :PAnsiChar = 'popup/byrequest';
  opt_PopTitle    :PAnsiChar = 'popup/poptitle';
  opt_PopText     :PAnsiChar = 'popup/poptext';
  opt_PopupButtons:PAnsiChar = 'popup/usebuttons';

  spref = 'strings/';

function GetModStatus:integer;
begin
  result:=DBReadByte(0,PluginShort,opt_ModStatus,1);
end;

procedure SetModStatus(stat:integer);
begin
  DBWriteByte(0,PluginShort,opt_ModStatus,stat);
end;

procedure loadpopup;
var
  def1,def2:pWideChar;
begin
  PopupButtons:=DBReadByte (0,PluginShort,opt_PopupButtons,BST_CHECKED);
  PopupFile   :=DBReadByte (0,PluginShort,opt_PopupFile   ,BST_CHECKED);
  PopupPause  :=DBReadByte (0,PluginShort,opt_PopupPause  ,0);
  PopupDelay  :=DBReadByte (0,PluginShort,opt_PopupDelay  ,0);
  PopupAction :=DBReadWord (0,PluginShort,opt_PopupAction ,0);
  PopupColor  :=DBReadByte (0,PluginShort,opt_PopupColor  ,0);
  PopupFore   :=DBReadDWord(0,PluginShort,opt_PopupFore   ,GetSysColor(COLOR_BTNTEXT));
  PopupBack   :=DBReadDWord(0,PluginShort,opt_PopupBack   ,GetSysColor(COLOR_BTNFACE));
  PopRequest  :=DBReadByte (0,PluginShort,opt_ByRequest   ,BST_UNCHECKED);
  if isVarsInstalled then
  begin
    def1:=defAltPopupTitle;
    def2:=defAltPopupText;
  end
  else
  begin
    def1:=defPopupTitle;
    def2:=defPopupText;
  end;
  PopTitle:=DBReadUnicode(0,PluginShort,opt_PopTitle,def1);
  PopText :=DBReadUnicode(0,PluginShort,opt_PopText ,def2);
end;

procedure savepopup;
begin
  DBWriteByte   (0,PluginShort,opt_PopupButtons,PopupButtons);
  DBWriteByte   (0,PluginShort,opt_PopupFile   ,PopupFile);
  DBWriteByte   (0,PluginShort,opt_PopupPause  ,PopupPause);
  DBWriteByte   (0,PluginShort,opt_PopupDelay  ,PopupDelay);
  DBWriteWord   (0,PluginShort,opt_PopupAction ,PopupAction);
  DBWriteByte   (0,PluginShort,opt_PopupColor  ,PopupColor);
  DBWriteDWord  (0,PluginShort,opt_PopupFore   ,PopupFore);
  DBWriteDWord  (0,PluginShort,opt_PopupBack   ,PopupBack);
  DBWriteByte   (0,PluginShort,opt_ByRequest   ,PopRequest);
  DBWriteUnicode(0,PluginShort,opt_PopTitle,PopTitle);
  DBWriteUnicode(0,PluginShort,opt_PopText ,PopText);
end;

procedure freepopup;
begin
  mFreeMem(PopTitle);
  mFreeMem(PopText);
end;