Ardour
9.0-pre0-582-g084a23a80d
inflater.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2022 Paul Davis <paul@linuxaudiosystems.com>
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program; if not, write to the Free Software Foundation, Inc.,
16
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
*/
18
19
#pragma once
20
21
#include <string>
22
23
#include "
pbd/file_archive.h
"
24
#include "
pbd/libpbd_visibility.h
"
25
#include "
pbd/progress.h
"
26
27
namespace
PBD
{
28
class
Thread;
29
}
30
31
namespace
PBD
{
32
33
class
LIBPBD_API
Inflater
:
public
PBD::FileArchive
,
public
PBD::Progress
34
{
35
public
:
36
Inflater
(std::string
const
& archive_path, std::string
const
& destdir);
37
~Inflater
();
38
39
int
start
();
40
bool
running
()
const
{
return
thread != 0; }
41
int
status
()
const
{
return
_status; }
42
43
PBD::Signal
<void(
float
)>
Progress
;
44
45
private
:
46
PBD::Thread
*
thread
;
47
int
_status
;
48
std::string
archive_path
;
49
std::string
destdir
;
50
51
void
threaded_inflate
();
52
53
void
set_overall_progress
(
float
p);
54
};
55
56
}
/* namespace */
57
PBD::FileArchive
Definition:
file_archive.h:38
PBD::Inflater
Definition:
inflater.h:34
PBD::Inflater::Inflater
Inflater(std::string const &archive_path, std::string const &destdir)
PBD::Inflater::status
int status() const
Definition:
inflater.h:41
PBD::Inflater::running
bool running() const
Definition:
inflater.h:40
PBD::Inflater::Progress
PBD::Signal< void(float)> Progress
Definition:
inflater.h:43
PBD::Inflater::thread
PBD::Thread * thread
Definition:
inflater.h:46
PBD::Inflater::threaded_inflate
void threaded_inflate()
PBD::Inflater::~Inflater
~Inflater()
PBD::Inflater::start
int start()
PBD::Inflater::archive_path
std::string archive_path
Definition:
inflater.h:48
PBD::Inflater::_status
int _status
Definition:
inflater.h:47
PBD::Inflater::destdir
std::string destdir
Definition:
inflater.h:49
PBD::Inflater::set_overall_progress
void set_overall_progress(float p)
PBD::Progress
Definition:
progress.h:30
PBD::Signal
Definition:
signals.h:169
PBD::Thread
Definition:
pthread_utils.h:104
file_archive.h
libpbd_visibility.h
LIBPBD_API
#define LIBPBD_API
Definition:
libpbd_visibility.h:50
PBD
Definition:
axis_view.h:42
progress.h
libs
pbd
pbd
inflater.h
Generated on Wed Dec 25 2024 05:44:33 for Ardour by
1.9.1