File: PluginInterface.cpp

package info (click to toggle)
audacity 3.2.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 106,704 kB
  • sloc: cpp: 277,038; ansic: 73,623; lisp: 7,761; python: 3,305; sh: 2,715; perl: 821; xml: 275; makefile: 119
file content (44 lines) | stat: -rw-r--r-- 1,230 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**********************************************************************

  Audacity: A Digital Audio Editor

  @file PluginInterface.cpp

**********************************************************************/
#include "PluginInterface.h"
#include <algorithm>

PluginManagerInterface::~PluginManagerInterface() = default;

namespace {
std::vector<long> Split(const PluginRegistryVersion &regver)
{
   std::vector<long> result;
   auto strings = wxSplit(regver, '.');
   std::transform(strings.begin(), strings.end(), std::back_inserter(result),
      [](const wxString &string) {
         long value;
         string.ToLong(&value);
         return value;
      });
   return result;
}
}

bool Regver_eq(
   const PluginRegistryVersion &regver1, const PluginRegistryVersion &regver2)
{
   auto numbers1 = Split(regver1)
      , numbers2 = Split(regver2);
   return std::equal(
      regver1.begin(), regver1.end(), regver2.begin(), regver2.end());
}

bool Regver_lt(
   const PluginRegistryVersion &regver1, const PluginRegistryVersion &regver2)
{
   auto numbers1 = Split(regver1)
      , numbers2 = Split(regver2);
   return std::lexicographical_compare(
      regver1.begin(), regver1.end(), regver2.begin(), regver2.end());
}