kodi
DVDInputStreamStack.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "DVDInputStream.h"
12 
13 #include <memory>
14 #include <vector>
15 
17 {
18 public:
19  explicit CDVDInputStreamStack(const CFileItem& fileitem);
20  ~CDVDInputStreamStack() override;
21 
22  bool Open() override;
23  void Close() override;
24  int Read(uint8_t* buf, int buf_size) override;
25  int64_t Seek(int64_t offset, int whence) override;
26  bool IsEOF() override;
27  int64_t GetLength() override;
28 
29 protected:
30 
31  typedef std::shared_ptr<XFILE::CFile> TFile;
32 
33  struct TSeg
34  {
35  TFile file;
36  int64_t length;
37  };
38 
39  typedef std::vector<TSeg> TSegVec;
40 
41  TSegVec m_files;
42  TFile m_file;
43  bool m_eof;
44  int64_t m_pos;
45  int64_t m_length;
46 };
TSegVec m_files
collection of open ptr&#39;s to all files in stack
Definition: DVDInputStreamStack.h:41
Definition: DVDInputStream.h:50
Definition: DVDInputStreamStack.h:33
Definition: DVDInputStreamStack.h:16
TFile m_file
currently active file
Definition: DVDInputStreamStack.h:42
Represents a file on a share.
Definition: FileItem.h:102