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