22#include "mythfileplayback.h"
23#include "mythlivetvplayback.h"
24#include "private/debug.h"
25#include "private/os/threads/latch.h"
26#include "private/builtin.h"
38FilePlayback::FilePlayback(
const std::string& server,
unsigned port)
42 ProtoPlayback::Open();
45FilePlayback::~FilePlayback()
50bool FilePlayback::Open()
53 OS::WriteLock lock(*m_latch);
54 if (ProtoPlayback::IsOpen())
56 return ProtoPlayback::Open();
59void FilePlayback::Close()
62 OS::WriteLock lock(*m_latch);
64 ProtoPlayback::Close();
67bool FilePlayback::OpenTransfer(
const std::string& pathname,
const std::string& sgname)
70 OS::WriteLock lock(*m_latch);
71 if (!ProtoPlayback::IsOpen())
74 m_transfer.reset(
new ProtoTransfer(m_server, m_port, pathname, sgname));
75 if (m_transfer->Open())
80void FilePlayback::CloseTransfer()
83 OS::WriteLock lock(*m_latch);
86 TransferDone(*m_transfer);
92bool FilePlayback::TransferIsOpen()
94 m_latch->lock_shared();
95 ProtoTransferPtr transfer(m_transfer);
96 m_latch->unlock_shared();
98 return ProtoPlayback::TransferIsOpen(*transfer);
102int64_t FilePlayback::GetSize()
const
104 m_latch->lock_shared();
105 ProtoTransferPtr transfer(m_transfer);
106 m_latch->unlock_shared();
108 return transfer->GetSize();
112int FilePlayback::Read(
void *buffer,
unsigned n)
114 m_latch->lock_shared();
115 ProtoTransferPtr transfer(m_transfer);
116 m_latch->unlock_shared();
120 int64_t s = transfer->GetRemaining();
126 r = TransferRequestBlock(*transfer, buffer, n);
133int64_t FilePlayback::Seek(int64_t offset, WHENCE_t whence)
135 m_latch->lock_shared();
136 ProtoTransferPtr transfer(m_transfer);
137 m_latch->unlock_shared();
139 return TransferSeek(*transfer, offset, whence);
143int64_t FilePlayback::GetPosition()
const
145 m_latch->lock_shared();
146 ProtoTransferPtr transfer(m_transfer);
147 m_latch->unlock_shared();
149 return transfer->GetPosition();
This is the main namespace that encloses all public classes.