File: SampleTrack.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 (78 lines) | stat: -rw-r--r-- 1,733 bytes parent folder | download
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/**********************************************************************

Audacity: A Digital Audio Editor

SampleTrack.cpp

Paul Licameli split from WaveTrack.cpp

**********************************************************************/

#include "SampleTrack.h"

#include <cmath>

SampleTrack::SampleTrack() = default;

SampleTrack::SampleTrack(const SampleTrack &other, ProtectedCreationArg &&a)
   : PlayableTrack(other, std::move(a))
{
}

SampleTrack::~SampleTrack() = default;

static const Track::TypeInfo &typeInfo()
{
   static const Track::TypeInfo info{
      { "sample", "sample", XO("Sample Track") },
      true, &PlayableTrack::ClassTypeInfo() };
   return info;
}

auto SampleTrack::ClassTypeInfo() -> const TypeInfo &
{
   return typeInfo();
}

auto SampleTrack::GetTypeInfo() const -> const TypeInfo &
{
   return typeInfo();
}

sampleCount SampleTrack::TimeToLongSamples(double t0) const
{
   return sampleCount( floor(t0 * GetRate() + 0.5) );
}

double SampleTrack::LongSamplesToTime(sampleCount pos) const
{
   return pos.as_double() / GetRate();
}

WritableSampleTrack::WritableSampleTrack() = default;

WritableSampleTrack::WritableSampleTrack(
   const WritableSampleTrack &other, ProtectedCreationArg &&a
)  : SampleTrack(other, std::move(a))
{
}

WritableSampleTrack::~WritableSampleTrack() = default;

static const Track::TypeInfo &typeInfo2()
{
   static const Track::TypeInfo info{
      { "writable-sample", "writable-sample", XO("Writable Sample Track") },
      true, &SampleTrack::ClassTypeInfo() };
   return info;
}

auto WritableSampleTrack::ClassTypeInfo() -> const TypeInfo &
{
   return typeInfo2();
}

auto WritableSampleTrack::GetTypeInfo() const -> const TypeInfo &
{
   return typeInfo2();
}