FotoSHOCK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
SaveInfo.hpp
1 /*
2  * Copyright 2011, 2012 Lukas Jirkovsky
3  *
4  * This file is part of FotoSHOCKcore.
5  *
6  * FotoSHOCKcore is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation, version 3 of the License.
9  *
10  * FotoSHOCKcore is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with FotoSHOCKcore. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 #ifndef SAVEINFO_H
20 #define SAVEINFO_H
21 
22 #include "Formats.hpp"
23 
24 #include <string>
25 
26 namespace FotoSHOCKcore{
27 namespace IO {
28 
29 class EncoderFactory;
30 
32 
38 // TODO: add some way to obtain format specific settings, such as quality
39 class SaveInfo {
40  public:
41  friend class EncoderFactory;
43 
50  SaveInfo(std::string fileName);
52 
61  SaveInfo(std::string fileName, Formats::Enum format);
62  protected:
64 
67  std::string fileName() const;
69 
72  Formats::Enum format() const;
73  private:
74  std::string m_fileName;
75  Formats::Enum m_format;
76 };
77 
78 }
79 }
80 
81 #endif