1#ifndef LASERDISCPLAYER_HH
2#define LASERDISCPLAYER_HH
38 [[nodiscard]] int16_t
readSample(EmuTime::param time);
41 void setMuting(
bool left,
bool right, EmuTime::param time);
42 [[nodiscard]]
bool extAck(EmuTime::param )
const {
return ack; }
43 void extControl(
bool bit, EmuTime::param time);
46 template<
typename Archive>
47 void serialize(Archive& ar,
unsigned version);
89 std::string getStateString()
const;
90 void setImageName(std::string newImage, EmuTime::param time);
91 [[nodiscard]]
const Filename& getImageName()
const {
return oggImage; }
96 void play(EmuTime::param time);
97 void pause(EmuTime::param time);
98 void stop(EmuTime::param time);
99 void eject(EmuTime::param time);
100 void seekFrame(
size_t frame, EmuTime::param time);
101 void stepFrame(
bool forwards);
102 void seekChapter(
int chapter, EmuTime::param time);
108 void scheduleDisplayStart(EmuTime::param time);
109 [[nodiscard]]
bool isVideoOutputAvailable(EmuTime::param time);
110 void remoteButtonNEC(uint8_t code, EmuTime::param time);
112 void setAck(EmuTime::param time,
int wait);
113 [[nodiscard]]
size_t getCurrentSample(EmuTime::param time);
114 void createRenderer();
117 void generateChannels(std::span<float*> buffers,
unsigned num)
override;
118 bool updateBuffer(
size_t length,
float* buffer,
119 EmuTime::param time)
override;
120 [[nodiscard]]
float getAmplificationFactorImpl()
const override;
126 void executeUntil(EmuTime::param time)
override {
128 player.execSyncAck(time);
134 void executeUntil(EmuTime::param time)
override {
136 player.execSyncFrame(time,
true);
142 void executeUntil(EmuTime::param time)
override {
144 player.execSyncFrame(time,
false);
148 void execSyncAck(EmuTime::param time);
149 void execSyncFrame(EmuTime::param time,
bool odd);
150 [[nodiscard]] EmuTime::param getCurrentTime()
const {
return syncAck.getCurrentTime(); }
153 int signalEvent(
const Event& event)
override;
156 void preVideoSystemChange() noexcept override;
157 void postVideoSystemChange() noexcept override;
159 MSXMotherBoard& motherBoard;
162 struct Command final : RecordedCommand {
163 Command(CommandController& commandController,
164 StateChangeDistributor& stateChangeDistributor,
166 void execute(std::span<const TclObject> tokens, TclObject& result,
167 EmuTime::param time)
override;
168 [[nodiscard]] std::string help(std::span<const TclObject> tokens)
const override;
169 void tabCompletion(std::vector<std::string>& tokens)
const override;
172 std::optional<OggReader> video;
174 std::unique_ptr<LDRenderer> renderer;
176 void nextFrame(EmuTime::param time);
183 EmuTime start = EmuTime::zero();
184 size_t playingFromSample;
185 size_t lastPlayedSample;
186 bool muteLeft =
false, muteRight =
false;
191 EmuTime remoteLastEdge = EmuTime::zero();
192 unsigned remoteBitNr;
194 bool remoteLastBit =
false;
197 bool remoteExecuteDelayed;
199 int remoteVblanksBack;
208 bool stillOnWaitFrame;
217 bool seeking =
false;
235 BooleanSetting autoRunSetting;
236 LoadingIndicator loadingIndicator;
This class represents a filename.
void setMuting(bool left, bool right, EmuTime::param time)
int16_t readSample(EmuTime::param time)
void extControl(bool bit, EmuTime::param time)
MSXMotherBoard & getMotherBoard()
LaserdiscPlayer(const HardwareConfig &hwConf, PioneerLDControl &ldControl)
const RawFrame * getRawFrame() const
bool extAck(EmuTime::param) const
void getMediaInfo(TclObject &result) override
This method gets called when information is required on the media inserted in the media slot of the p...
void serialize(Archive &ar, unsigned version)
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
T length(const vecN< N, T > &x)
This file implemented 3 utility functions:
std::variant< KeyUpEvent, KeyDownEvent, MouseMotionEvent, MouseButtonUpEvent, MouseButtonDownEvent, MouseWheelEvent, JoystickAxisMotionEvent, JoystickHatEvent, JoystickButtonUpEvent, JoystickButtonDownEvent, OsdControlReleaseEvent, OsdControlPressEvent, WindowEvent, TextEvent, FileDropEvent, QuitEvent, FinishFrameEvent, CliCommandEvent, GroupEvent, BootEvent, FrameDrawnEvent, BreakEvent, SwitchRendererEvent, TakeReverseSnapshotEvent, AfterTimedEvent, MachineLoadedEvent, MachineActivatedEvent, MachineDeactivatedEvent, MidiInReaderEvent, MidiInWindowsEvent, MidiInCoreMidiEvent, MidiInCoreMidiVirtualEvent, MidiInALSAEvent, Rs232TesterEvent, ImGuiDelayedActionEvent, ImGuiActiveEvent > Event
SERIALIZE_CLASS_VERSION(CassettePlayer, 2)
#define OUTER(type, member)