27 ,
public Nano::Observer
29 SCORE_SERIALIZE_FRIENDS
41 QString prettyName()
const noexcept override;
43 template <
typename Impl>
46 , m_file{std::make_shared<AudioFile>()}
55 void setFile(
const QString& file);
56 QString userFilePath()
const noexcept;
63 void setFileForced(
const QString& file,
int stream = -1);
65 std::shared_ptr<AudioFile>& file();
66 const std::shared_ptr<AudioFile>& file()
const;
68 int stream()
const noexcept;
69 int upmixChannels()
const noexcept;
70 int startChannel()
const noexcept;
71 double nativeTempo()
const noexcept;
72 ossia::audio_stretch_mode stretchMode()
const noexcept;
74 void setUpmixChannels(
int upmixChannels);
75 void setStartChannel(
int startChannel);
76 void setStream(
int stream);
77 void setNativeTempo(
double);
78 void setStretchMode(ossia::audio_stretch_mode);
80 void on_mediaChanged();
85 double fileTempoRatio()
const noexcept;
88 std::optional<Process::MediaRange> usedFileRange()
const noexcept;
90 std::unique_ptr<Process::AudioOutlet> outlet;
93 void fileChanged() W_SIGNAL(fileChanged);
94 void scoreTempoChanged() W_SIGNAL(scoreTempoChanged);
95 void nativeTempoChanged(
double t) W_SIGNAL(nativeTempoChanged, t);
96 void streamChanged(
int stream) W_SIGNAL(streamChanged, stream);
97 void upmixChannelsChanged(
int upmixChannels)
98 W_SIGNAL(upmixChannelsChanged, upmixChannels);
99 void startChannelChanged(
int startChannel) W_SIGNAL(startChannelChanged, startChannel);
100 void stretchModeChanged(ossia::audio_stretch_mode mode)
101 W_SIGNAL(stretchModeChanged, mode);
103 PROPERTY(
int, stream READ stream WRITE setStream NOTIFY streamChanged, W_Final)
106 startChannel READ startChannel WRITE setStartChannel NOTIFY startChannelChanged,
110 upmixChannels READ upmixChannels WRITE setUpmixChannels NOTIFY
111 upmixChannelsChanged,
115 nativeTempo READ nativeTempo WRITE setNativeTempo NOTIFY nativeTempoChanged,
118 ossia::audio_stretch_mode,
119 stretchMode READ stretchMode WRITE setStretchMode NOTIFY stretchModeChanged,
123 void loadFile(
const QString& str,
int stream = -1);
127 void ancestorStartDateChanged()
override;
128 void ancestorTempoChanged()
override;
130 QString m_userFilePath{};
131 std::shared_ptr<AudioFile> m_file;
132 int m_upmixChannels{};
133 int m_startChannel{};
134 ossia::audio_stretch_mode m_mode{};
135 double m_nativeTempo{};