1// OpenCallbackConsole.cpp
2
3#include "StdAfx.h"
4
5#include "OpenCallbackConsole.h"
6
7#include "ConsoleClose.h"
8#include "UserInputUtils.h"
9
10static HRESULT CheckBreak2()
11{
12  return NConsoleClose::TestBreakSignal() ? E_ABORT : S_OK;
13}
14
15HRESULT COpenCallbackConsole::Open_CheckBreak()
16{
17  return CheckBreak2();
18}
19
20HRESULT COpenCallbackConsole::Open_SetTotal(const UInt64 *files, const UInt64 *bytes)
21{
22  if (!MultiArcMode && NeedPercents())
23  {
24    if (files)
25    {
26      _totalFilesDefined = true;
27      // _totalFiles = *files;
28      _percent.Total = *files;
29    }
30    else
31      _totalFilesDefined = false;
32
33    if (bytes)
34    {
35      // _totalBytesDefined = true;
36      _totalBytes = *bytes;
37      if (!files)
38        _percent.Total = *bytes;
39    }
40    else
41    {
42      // _totalBytesDefined = false;
43      if (!files)
44        _percent.Total = _totalBytes;
45    }
46  }
47
48  return CheckBreak2();
49}
50
51HRESULT COpenCallbackConsole::Open_SetCompleted(const UInt64 *files, const UInt64 *bytes)
52{
53  if (!MultiArcMode && NeedPercents())
54  {
55    if (files)
56    {
57      _percent.Files = *files;
58      if (_totalFilesDefined)
59        _percent.Completed = *files;
60    }
61
62    if (bytes)
63    {
64      if (!_totalFilesDefined)
65        _percent.Completed = *bytes;
66    }
67    _percent.Print();
68  }
69
70  return CheckBreak2();
71}
72
73HRESULT COpenCallbackConsole::Open_Finished()
74{
75  ClosePercents();
76  return S_OK;
77}
78
79
80#ifndef Z7_NO_CRYPTO
81
82HRESULT COpenCallbackConsole::Open_CryptoGetTextPassword(BSTR *password)
83{
84  *password = NULL;
85  RINOK(CheckBreak2())
86
87  if (!PasswordIsDefined)
88  {
89    ClosePercents();
90    RINOK(GetPassword_HRESULT(_so, Password))
91    PasswordIsDefined = true;
92  }
93  return StringToBstr(Password, password);
94}
95
96/*
97HRESULT COpenCallbackConsole::Open_GetPasswordIfAny(bool &passwordIsDefined, UString &password)
98{
99  passwordIsDefined = PasswordIsDefined;
100  password = Password;
101  return S_OK;
102}
103
104bool COpenCallbackConsole::Open_WasPasswordAsked()
105{
106  return PasswordWasAsked;
107}
108
109void COpenCallbackConsole::Open_Clear_PasswordWasAsked_Flag ()
110{
111  PasswordWasAsked = false;
112}
113*/
114
115#endif
116