File: recordings_widget.ecpp

package info (click to toggle)
vdr-plugin-live 3.5.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,116 kB
  • sloc: cpp: 12,988; javascript: 3,220; makefile: 241; sh: 40
file content (53 lines) | stat: -rw-r--r-- 1,761 bytes parent folder | download | duplicates (2)
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
<%pre>
#include <exception.h>
#include <setup.h>
#include <recman.h>
#include <tools.h>
#include <stringhelpers.h>

using namespace vdrlive;

</%pre>
<%args>
  name = "recid";
  selected;
  onchange;
</%args>
<%session scope="global">
  bool logged_in(false);
  std::string prev_recording;
  std::string next_recording;
</%session>
<%cpp>
  if (!logged_in && LiveSetup().UseAuth()) {
    cToSvConcat targetUrl = "/login.html?redirect=";
    targetUrl.appendUrlEscaped(request.getQuery());
    return reply.redirect(targetUrl.data());
  }
</%cpp>
<select name="<$ name $>" id="<$ name $>" <{ reply.out() << ( !onchange.empty() ? "onchange=\""+onchange+"\"" : "" ); }>>
<%cpp>
  XXH128_hash_t selected_rec_hash = {0, 0};
  if (selected.length() == 42 && selected.compare(0, 10, "recording_") == 0)
    selected_rec_hash = parse_hex_128(selected.substr(10));

  bool prev_selected = false;
  cToSvConcat<8 + 128/4> recId; // 32 hash bytes (4 bits per hex digit) plus some spare bytes
  RecordingsTreePtr recordingsTree(RecordingsManager::GetRecordingsTree());
  const std::vector<RecordingsItemRec*>* allRecordings = recordingsTree->allRecordings(vdrlive::RecordingsManager::eSortOrder::name);
  for (const RecordingsItemRec* rPtr : *allRecordings ) {
    bool isSelected = XXH128_isEqual(rPtr->IdHash(), selected_rec_hash);
    if (isSelected) prev_recording = cSv(recId);  // this is the recId from last loop

    recId.clear(); recId.appendHex(rPtr->IdHash());

    if (prev_selected) next_recording = cSv(recId);
    prev_selected = isSelected;
</%cpp>
    <option value="recording_<$$ recId $>"<? isSelected ? " selected=\"selected\"" ?>><$ rPtr->Name() $>
%     if (!rPtr->Folder().empty() ) {
      (<$ rPtr->Folder() $>)
%    }
    </option>
% }
</select>