/** @file MOMDVR.idl
 *
 * Copyright (C) Espial Limited 2014 - Company confidential - All rights reserved.
 *
 */

    [
        ActiveDOMObject,
        Conditional=RMAI,
        JSGenerateToJSObject,
        JSGenerateToNativeObject
    ] interface MOMDVR : EventTarget {
        const unsigned short ALL = 0;
        const unsigned short NONE = 0;
        const unsigned short WATCHED = 1;
        const unsigned short OLD = 2;
        const unsigned short REMOVE_THIS = 1;
        const unsigned short REMOVE_ALL = 2;
        const unsigned short REMOVE_CONFLICT = 3;

        readonly attribute MOMContentItem schedule;
        readonly attribute MOMContentItem recordingSeries;

        [Custom] MOMContentItem createFilteredList( in optional long sortOrder, in optional boolean sortIncreasing );
        MOMScheduledRecording record( in MOMProgramme programme, in optional boolean seriesLink, in optional MOMRecorder recorder ) raises(MOMException);
        [Custom] void remove( in MOMScheduledRecording recording, in optional long reason ) raises(MOMException);
        void removeAll();
        void stop( in MOMScheduledRecording recording );
        void refresh();
        MOMReminder setReminder( in MOMProgramme programme ) raises(MOMException);
        MOMScheduledRecording recordNow( in MOMChannel channel, in long duration, in optional MOMRecorder recorder ) raises(MOMException);
        MOMScheduledRecording recordAt( in MOMChannel channel, in long start, in long duration, in optional MOMRecorder recorder ) raises(MOMException);

    };
