1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Direct access to several class members is now deprecated

This commit is contained in:
Klaus Schmidinger 2011-08-21 11:34:30 +02:00
parent e5d2240bbb
commit 97ad2fa95d
9 changed files with 63 additions and 40 deletions

View File

@ -6699,7 +6699,7 @@ Video Disk Recorder Revision History
constructor is negative (avoids the "cTimeMs: using monotonic clock..." log message constructor is negative (avoids the "cTimeMs: using monotonic clock..." log message
before VDR's starting log message). before VDR's starting log message).
2011-08-20: Version 1.7.21 2011-08-21: Version 1.7.21
- Fixed detecting frames for channels that split frames into several payloads - Fixed detecting frames for channels that split frames into several payloads
(reported by Derek Kelly). (reported by Derek Kelly).
@ -6708,3 +6708,10 @@ Video Disk Recorder Revision History
- The start time of an edited recording is now set to the time of the first - The start time of an edited recording is now set to the time of the first
editing mark (thanks to Udo Richter). editing mark (thanks to Udo Richter).
This obsoletes the CUTTIME patch. This obsoletes the CUTTIME patch.
- Direct access to the members start, priority, lifetime, and deleted of cRecording
as well as to position and comment of cMark is now deprecated. Plugin authors
should switch to the new access functions for these members. For now the macro
__RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS is defined in recording.h, which
exposes these members, so that existing plugins will still compile. Comment out
this #define to check whether a particular plugin needs to be modified.
This #define may be removed in a future version.

View File

@ -3,7 +3,7 @@
* *
* See the README file for copyright information and how to reach the author. * See the README file for copyright information and how to reach the author.
* *
* $Id: skincurses.c 2.6 2011/05/15 21:41:47 kls Exp $ * $Id: skincurses.c 2.7 2011/08/21 11:04:38 kls Exp $
*/ */
#include <ncurses.h> #include <ncurses.h>
@ -436,7 +436,7 @@ void cSkinCursesDisplayMenu::SetRecording(const cRecording *Recording)
int y = 2; int y = 2;
cTextScroller ts; cTextScroller ts;
char t[32]; char t[32];
snprintf(t, sizeof(t), "%s %s", *DateString(Recording->start), *TimeString(Recording->start)); snprintf(t, sizeof(t), "%s %s", *DateString(Recording->Start()), *TimeString(Recording->Start()));
ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground); ts.Set(osd, 0, y, ScOsdWidth, ScOsdHeight - y - 2, t, &Font, clrYellow, clrBackground);
y += ts.Height(); y += ts.Height();
if (Info->GetEvent()->ParentalRating()) { if (Info->GetEvent()->ParentalRating()) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: cutter.c 2.7 2011/08/20 09:57:27 kls Exp $ * $Id: cutter.c 2.8 2011/08/21 11:08:08 kls Exp $
*/ */
#include "cutter.h" #include "cutter.h"
@ -75,7 +75,7 @@ void cCuttingThread::Action(void)
if (!fromFile || !toFile) if (!fromFile || !toFile)
return; return;
fromFile->SetReadAhead(MEGABYTE(20)); fromFile->SetReadAhead(MEGABYTE(20));
int Index = Mark->position; int Index = Mark->Position();
Mark = fromMarks.Next(Mark); Mark = fromMarks.Next(Mark);
off_t FileSize = 0; off_t FileSize = 0;
int CurrentFileNumber = 0; int CurrentFileNumber = 0;
@ -163,14 +163,14 @@ void cCuttingThread::Action(void)
// Check editing marks: // Check editing marks:
if (Mark && Index >= Mark->position) { if (Mark && Index >= Mark->Position()) {
Mark = fromMarks.Next(Mark); Mark = fromMarks.Next(Mark);
toMarks.Add(LastIFrame); toMarks.Add(LastIFrame);
if (Mark) if (Mark)
toMarks.Add(toIndex->Last() + 1); toMarks.Add(toIndex->Last() + 1);
toMarks.Save(); toMarks.Save();
if (Mark) { if (Mark) {
Index = Mark->position; Index = Mark->Position();
Mark = fromMarks.Next(Mark); Mark = fromMarks.Next(Mark);
CurrentFileNumber = 0; // triggers SetOffset before reading next frame CurrentFileNumber = 0; // triggers SetOffset before reading next frame
cutIn = true; cutIn = true;
@ -212,7 +212,7 @@ bool cCutter::Start(const char *FileName)
cMarks FromMarks; cMarks FromMarks;
FromMarks.Load(FileName); FromMarks.Load(FileName);
if (cMark *First = FromMarks.First()) if (cMark *First = FromMarks.First())
Recording.SetStartTime(Recording.start + (int(First->position / Recording.FramesPerSecond() + 30) / 60) * 60); Recording.SetStartTime(Recording.Start() + (int(First->Position() / Recording.FramesPerSecond() + 30) / 60) * 60);
const char *evn = Recording.PrefixFileName('%'); const char *evn = Recording.PrefixFileName('%');
if (evn && RemoveVideoFile(evn) && MakeDirs(evn, true)) { if (evn && RemoveVideoFile(evn) && MakeDirs(evn, true)) {

13
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menu.c 2.29 2011/08/06 13:13:34 kls Exp $ * $Id: menu.c 2.30 2011/08/21 11:09:19 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -4667,7 +4667,7 @@ void cReplayControl::MarkJump(bool Forward)
if (GetIndex(Current, Total)) { if (GetIndex(Current, Total)) {
cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current); cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current);
if (m) { if (m) {
Goto(m->position, true); Goto(m->Position(), true);
displayFrames = true; displayFrames = true;
} }
} }
@ -4684,14 +4684,15 @@ void cReplayControl::MarkMove(bool Forward)
int p = SkipFrames(Forward ? 1 : -1); int p = SkipFrames(Forward ? 1 : -1);
cMark *m2; cMark *m2;
if (Forward) { if (Forward) {
if ((m2 = marks.Next(m)) != NULL && m2->position <= p) if ((m2 = marks.Next(m)) != NULL && m2->Position() <= p)
return; return;
} }
else { else {
if ((m2 = marks.Prev(m)) != NULL && m2->position >= p) if ((m2 = marks.Prev(m)) != NULL && m2->Position() >= p)
return; return;
} }
Goto(m->position = p, true); m->SetPosition(p);
Goto(m->Position(), true);
marks.Save(); marks.Save();
} }
} }
@ -4726,7 +4727,7 @@ void cReplayControl::EditTest(void)
if ((m->Index() & 0x01) != 0) if ((m->Index() & 0x01) != 0)
m = marks.Next(m); m = marks.Next(m);
if (m) { if (m) {
Goto(m->position - SecondsToFrames(3, FramesPerSecond())); Goto(m->Position() - SecondsToFrames(3, FramesPerSecond()));
Play(); Play();
} }
} }

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.c 2.34 2011/08/20 09:53:45 kls Exp $ * $Id: recording.c 2.35 2011/08/21 11:19:55 kls Exp $
*/ */
#include "recording.h" #include "recording.h"
@ -94,7 +94,7 @@ void cRemoveDeletedRecordingsThread::Action(void)
bool deleted = false; bool deleted = false;
cThreadLock DeletedRecordingsLock(&DeletedRecordings); cThreadLock DeletedRecordingsLock(&DeletedRecordings);
for (cRecording *r = DeletedRecordings.First(); r; ) { for (cRecording *r = DeletedRecordings.First(); r; ) {
if (r->deleted && time(NULL) - r->deleted > DELETEDLIFETIME) { if (r->Deleted() && time(NULL) - r->Deleted() > DELETEDLIFETIME) {
cRecording *next = DeletedRecordings.Next(r); cRecording *next = DeletedRecordings.Next(r);
r->Remove(); r->Remove();
DeletedRecordings.Del(r); DeletedRecordings.Del(r);
@ -120,7 +120,7 @@ void RemoveDeletedRecordings(void)
if (!RemoveDeletedRecordingsThread.Active()) { if (!RemoveDeletedRecordingsThread.Active()) {
cThreadLock DeletedRecordingsLock(&DeletedRecordings); cThreadLock DeletedRecordingsLock(&DeletedRecordings);
for (cRecording *r = DeletedRecordings.First(); r; r = DeletedRecordings.Next(r)) { for (cRecording *r = DeletedRecordings.First(); r; r = DeletedRecordings.Next(r)) {
if (r->deleted && time(NULL) - r->deleted > DELETEDLIFETIME) { if (r->Deleted() && time(NULL) - r->Deleted() > DELETEDLIFETIME) {
RemoveDeletedRecordingsThread.Start(); RemoveDeletedRecordingsThread.Start();
break; break;
} }
@ -153,7 +153,7 @@ void AssertFreeDiskSpace(int Priority, bool Force)
cRecording *r0 = NULL; cRecording *r0 = NULL;
while (r) { while (r) {
if (IsOnVideoDirectoryFileSystem(r->FileName())) { // only remove recordings that will actually increase the free video disk space if (IsOnVideoDirectoryFileSystem(r->FileName())) { // only remove recordings that will actually increase the free video disk space
if (!r0 || r->start < r0->start) if (!r0 || r->Start() < r0->Start())
r0 = r; r0 = r;
} }
r = DeletedRecordings.Next(r); r = DeletedRecordings.Next(r);
@ -180,11 +180,11 @@ void AssertFreeDiskSpace(int Priority, bool Force)
cRecording *r0 = NULL; cRecording *r0 = NULL;
while (r) { while (r) {
if (IsOnVideoDirectoryFileSystem(r->FileName())) { // only delete recordings that will actually increase the free video disk space if (IsOnVideoDirectoryFileSystem(r->FileName())) { // only delete recordings that will actually increase the free video disk space
if (!r->IsEdited() && r->lifetime < MAXLIFETIME) { // edited recordings and recordings with MAXLIFETIME live forever if (!r->IsEdited() && r->Lifetime() < MAXLIFETIME) { // edited recordings and recordings with MAXLIFETIME live forever
if ((r->lifetime == 0 && Priority > r->priority) || // the recording has no guaranteed lifetime and the new recording has higher priority if ((r->Lifetime() == 0 && Priority > r->Priority()) || // the recording has no guaranteed lifetime and the new recording has higher priority
(r->lifetime > 0 && (time(NULL) - r->start) / SECSINDAY >= r->lifetime)) { // the recording's guaranteed lifetime has expired (r->Lifetime() > 0 && (time(NULL) - r->Start()) / SECSINDAY >= r->Lifetime())) { // the recording's guaranteed lifetime has expired
if (r0) { if (r0) {
if (r->priority < r0->priority || (r->priority == r0->priority && r->start < r0->start)) if (r->Priority() < r0->Priority() || (r->Priority() == r0->Priority() && r->Start() < r0->Start()))
r0 = r; // in any case we delete the one with the lowest priority (or the older one in case of equal priorities) r0 = r; // in any case we delete the one with the lowest priority (or the older one in case of equal priorities)
} }
else else
@ -1240,23 +1240,21 @@ cMutex MutexMarkFramesPerSecond;
cMark::cMark(int Position, const char *Comment, double FramesPerSecond) cMark::cMark(int Position, const char *Comment, double FramesPerSecond)
{ {
position = Position; position = Position;
comment = Comment ? strdup(Comment) : NULL; comment = Comment;
framesPerSecond = FramesPerSecond; framesPerSecond = FramesPerSecond;
} }
cMark::~cMark() cMark::~cMark()
{ {
free(comment);
} }
cString cMark::ToText(void) cString cMark::ToText(void)
{ {
return cString::sprintf("%s%s%s\n", *IndexToHMSF(position, true, framesPerSecond), comment ? " " : "", comment ? comment : ""); return cString::sprintf("%s%s%s\n", *IndexToHMSF(position, true, framesPerSecond), Comment() ? " " : "", Comment() ? Comment() : "");
} }
bool cMark::Parse(const char *s) bool cMark::Parse(const char *s)
{ {
free(comment);
comment = NULL; comment = NULL;
framesPerSecond = MarkFramesPerSecond; framesPerSecond = MarkFramesPerSecond;
position = HMSFToIndex(s, framesPerSecond); position = HMSFToIndex(s, framesPerSecond);
@ -1320,7 +1318,7 @@ void cMarks::Sort(void)
{ {
for (cMark *m1 = First(); m1; m1 = Next(m1)) { for (cMark *m1 = First(); m1; m1 = Next(m1)) {
for (cMark *m2 = Next(m1); m2; m2 = Next(m2)) { for (cMark *m2 = Next(m1); m2; m2 = Next(m2)) {
if (m2->position < m1->position) { if (m2->Position() < m1->Position()) {
swap(m1->position, m2->position); swap(m1->position, m2->position);
swap(m1->comment, m2->comment); swap(m1->comment, m2->comment);
} }
@ -1341,7 +1339,7 @@ cMark *cMarks::Add(int Position)
cMark *cMarks::Get(int Position) cMark *cMarks::Get(int Position)
{ {
for (cMark *mi = First(); mi; mi = Next(mi)) { for (cMark *mi = First(); mi; mi = Next(mi)) {
if (mi->position == Position) if (mi->Position() == Position)
return mi; return mi;
} }
return NULL; return NULL;
@ -1350,7 +1348,7 @@ cMark *cMarks::Get(int Position)
cMark *cMarks::GetPrev(int Position) cMark *cMarks::GetPrev(int Position)
{ {
for (cMark *mi = Last(); mi; mi = Prev(mi)) { for (cMark *mi = Last(); mi; mi = Prev(mi)) {
if (mi->position < Position) if (mi->Position() < Position)
return mi; return mi;
} }
return NULL; return NULL;
@ -1359,7 +1357,7 @@ cMark *cMarks::GetPrev(int Position)
cMark *cMarks::GetNext(int Position) cMark *cMarks::GetNext(int Position)
{ {
for (cMark *mi = First(); mi; mi = Next(mi)) { for (cMark *mi = First(); mi; mi = Next(mi)) {
if (mi->position > Position) if (mi->Position() > Position)
return mi; return mi;
} }
return NULL; return NULL;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.h 2.23 2011/08/20 09:52:07 kls Exp $ * $Id: recording.h 2.24 2011/08/21 11:34:03 kls Exp $
*/ */
#ifndef __RECORDING_H #ifndef __RECORDING_H
@ -22,6 +22,8 @@
#define TIMERMACRO_TITLE "TITLE" #define TIMERMACRO_TITLE "TITLE"
#define TIMERMACRO_EPISODE "EPISODE" #define TIMERMACRO_EPISODE "EPISODE"
#define __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS // Code enclosed with this macro is deprecated and may be removed in a future version
extern bool VfatFileSystem; extern bool VfatFileSystem;
extern int InstanceId; extern int InstanceId;
@ -97,14 +99,21 @@ private:
static char *StripEpisodeName(char *s); static char *StripEpisodeName(char *s);
char *SortName(void) const; char *SortName(void) const;
int GetResume(void) const; int GetResume(void) const;
#ifdef __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS
public: public:
#endif
time_t start; time_t start;
int priority; int priority;
int lifetime; int lifetime;
time_t deleted; time_t deleted;
public:
cRecording(cTimer *Timer, const cEvent *Event); cRecording(cTimer *Timer, const cEvent *Event);
cRecording(const char *FileName); cRecording(const char *FileName);
virtual ~cRecording(); virtual ~cRecording();
time_t Start(void) const { return start; }
int Priority(void) const { return priority; }
int Lifetime(void) const { return lifetime; }
time_t Deleted(void) const { return deleted; }
virtual int Compare(const cListObject &ListObject) const; virtual int Compare(const cListObject &ListObject) const;
const char *Name(void) const { return name; } const char *Name(void) const { return name; }
const char *FileName(void) const; const char *FileName(void) const;
@ -184,13 +193,21 @@ extern cRecordings DeletedRecordings;
#define DEFAULTFRAMESPERSECOND 25.0 #define DEFAULTFRAMESPERSECOND 25.0
class cMark : public cListObject { class cMark : public cListObject {
friend class cMarks; // for sorting
private: private:
double framesPerSecond; double framesPerSecond;
#ifdef __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS
public: public:
#endif
int position; int position;
char *comment; cString comment;
public:
cMark(int Position = 0, const char *Comment = NULL, double FramesPerSecond = DEFAULTFRAMESPERSECOND); cMark(int Position = 0, const char *Comment = NULL, double FramesPerSecond = DEFAULTFRAMESPERSECOND);
virtual ~cMark(); virtual ~cMark();
int Position(void) const { return position; }
const char *Comment(void) const { return comment; }
void SetPosition(int Position) { position = Position; }
void SetComment(const char *Comment) { comment = Comment; }
cString ToText(void); cString ToText(void);
bool Parse(const char *s); bool Parse(const char *s);
bool Save(FILE *f); bool Save(FILE *f);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: skinclassic.c 2.5 2010/11/07 15:10:23 kls Exp $ * $Id: skinclassic.c 2.6 2011/08/21 11:02:06 kls Exp $
*/ */
#include "skinclassic.h" #include "skinclassic.h"
@ -377,7 +377,7 @@ void cSkinClassicDisplayMenu::SetRecording(const cRecording *Recording)
int y = y2; int y = y2;
cTextScroller ts; cTextScroller ts;
char t[32]; char t[32];
snprintf(t, sizeof(t), "%s %s", *DateString(Recording->start), *TimeString(Recording->start)); snprintf(t, sizeof(t), "%s %s", *DateString(Recording->Start()), *TimeString(Recording->Start()));
ts.Set(osd, x1, y, x2 - x1, y3 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground)); ts.Set(osd, x1, y, x2 - x1, y3 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
y += ts.Height(); y += ts.Height();
if (Info->GetEvent()->ParentalRating()) { if (Info->GetEvent()->ParentalRating()) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: skins.c 2.2 2011/08/06 09:41:57 kls Exp $ * $Id: skins.c 2.3 2011/08/21 11:21:19 kls Exp $
*/ */
#include "skins.h" #include "skins.h"
@ -136,14 +136,14 @@ cSkinDisplayReplay::cProgressBar::cProgressBar(int Width, int Height, int Curren
if (Marks) { if (Marks) {
bool Start = true; bool Start = true;
for (const cMark *m = Marks->First(); m; m = Marks->Next(m)) { for (const cMark *m = Marks->First(); m; m = Marks->Next(m)) {
int p1 = Pos(m->position); int p1 = Pos(m->Position());
if (Start) { if (Start) {
const cMark *m2 = Marks->Next(m); const cMark *m2 = Marks->Next(m);
int p2 = Pos(m2 ? m2->position : total); int p2 = Pos(m2 ? m2->Position() : total);
int h = Height / 3; int h = Height / 3;
DrawRectangle(p1, h, p2, Height - h, ColorSelected); DrawRectangle(p1, h, p2, Height - h, ColorSelected);
} }
Mark(p1, Start, m->position == Current, ColorMark, ColorCurrent); Mark(p1, Start, m->Position() == Current, ColorMark, ColorCurrent);
Start = !Start; Start = !Start;
} }
} }

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: skinsttng.c 2.10 2011/06/12 15:20:59 kls Exp $ * $Id: skinsttng.c 2.11 2011/08/21 11:02:26 kls Exp $
*/ */
// Star Trek: The Next Generation® is a registered trademark of Paramount Pictures // Star Trek: The Next Generation® is a registered trademark of Paramount Pictures
@ -693,7 +693,7 @@ void cSkinSTTNGDisplayMenu::SetRecording(const cRecording *Recording)
int y = y3; int y = y3;
cTextScroller ts; cTextScroller ts;
char t[32]; char t[32];
snprintf(t, sizeof(t), "%s %s", *DateString(Recording->start), *TimeString(Recording->start)); snprintf(t, sizeof(t), "%s %s", *DateString(Recording->Start()), *TimeString(Recording->Start()));
ts.Set(osd, xl, y, x4 - xl, y4 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground)); ts.Set(osd, xl, y, x4 - xl, y4 - y, t, font, Theme.Color(clrMenuEventTime), Theme.Color(clrBackground));
y += ts.Height(); y += ts.Height();
if (Info->GetEvent()->ParentalRating()) { if (Info->GetEvent()->ParentalRating()) {