IInfoComponent.hpp 1.7 KB
Newer Older
1
2
3
4
#ifndef I_INFO_COMPONENT_HPP
#define I_INFO_COMPONENT_HPP
#include <Types.hpp>
namespace XPlug {
5
/**
6
7
8
9
 * @brief Componentinterface, which is used to retreive Information over the
 * Plugin. Maybe in the Future it can be extended with generic information, but
 * a better concept is needed. Speacially because it can be used to transfer
 * IDs, which are needed py formatlibraries.
10
11
12
13
14
15
16
17
18
 */
class IInfoComponent
{
public:
  /**
   * @brief Gets the Name of the Plugin.
   * @return Name of the given Plugin.
   */
  virtual std::string_view getPluginName() = 0;
19

20
21
22
23
24
25
  /**
   * @brief Gets the Plugin URI. This can be an Website, but doesnt have to.
   * In LV2 this URI is used to identify the Plugin.
   * @return URI of the Plugin.
   */
  virtual std::string_view getPluginURI() = 0;
26

27
28
29
30
31
  /**
   * @brief Gets the Description of the Plugin.
   * @return Description of the Plugin.
   */
  virtual std::string_view getPluginDescription() = 0;
32

33
34
35
36
37
  /**
   * @brief Gets the Copyright or Licence of the Plugin.
   * @return Copyright or Licence of the Plugin.
   */
  virtual std::string_view getPluginCopyright() = 0;
38
39
40
41
42
  /**
   * @brief Gets the ID of the Plugin, which is used in the format libraries.
   * @return returns the id of the plugin.
  */
  virtual int64_t getID() = 0;
43
44
45
46
47
48
49
50
51
52
53
54
55
  /********************Creator/Vendor information*********************/
  /**
   * @brief Gets the Name of the creator, vendor or developer.
   * @return Name of the creator, vendor or developer.
   */
  virtual std::string_view getCreatorName() = 0;

  /**
   * @brief Gets the URL from the plugincreator or pluginvendor
   * @return URL from the plugincreator or pluginvendor
   */
  virtual std::string_view getCreatorURL() = 0;
};
56
57
58

}
#endif //! I_INFO_COMPONENT_HPP