Ticket #11491: mythtv-0.26-serviceapi-recorded-markup.2.patch
File mythtv-0.26-serviceapi-recorded-markup.2.patch, 16.3 KB (added by , 11 years ago) |
---|
-
new file mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkup.h
diff --git a/mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkup.h b/mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkup.h new file mode 100644 index 0000000..d132ce6
- + 1 ////////////////////////////////////////////////////////////////////////////// 2 // Program Name: recordedMarkup.h 3 // Created : Apr. 17, 2013 4 // 5 // Copyright (c) 2013 Tikinou LLC <dev-team@tikinou.com> 6 // 7 // Licensed under the GPL v2 or later, see COPYING for details 8 // 9 ////////////////////////////////////////////////////////////////////////////// 10 11 #ifndef RECORDEDMARKUP_H_ 12 #define RECORDEDMARKUP_H_ 13 14 #include <QVariantList> 15 #include <QDateTime> 16 17 #include "serviceexp.h" 18 #include "datacontracthelper.h" 19 20 #include "recordedMarkupItem.h" 21 22 namespace DTC 23 { 24 25 class SERVICE_PUBLIC RecordedMarkup : public QObject 26 { 27 Q_OBJECT 28 Q_CLASSINFO( "version", "1.0" ); 29 30 // Q_CLASSINFO Used to augment Metadata for properties. 31 // See datacontracthelper.h for details 32 33 Q_CLASSINFO( "Markups", "type=DTC::RecordedMarkupItem"); 34 35 Q_PROPERTY( int ChannelId READ ChannelId WRITE setChannelId ) 36 Q_PROPERTY( QDateTime StartTime READ StartTime WRITE setStartTime ) 37 38 Q_PROPERTY( QVariantList Markups READ Markups DESIGNABLE true ) 39 40 PROPERTYIMP ( int , ChannelId ) 41 PROPERTYIMP ( QDateTime , StartTime ) 42 43 PROPERTYIMP_RO_REF( QVariantList, Markups ) 44 45 public: 46 47 static void InitializeCustomTypes() 48 { 49 qRegisterMetaType< RecordedMarkup >(); 50 qRegisterMetaType< RecordedMarkup* >(); 51 52 RecordedMarkupItem::InitializeCustomTypes(); 53 } 54 55 public: 56 57 RecordedMarkup(QObject *parent = 0) 58 : QObject( parent ) , 59 m_ChannelId( 0 ) 60 { 61 } 62 63 RecordedMarkup( const RecordedMarkup &src ) 64 { 65 Copy( src ); 66 } 67 68 void Copy( const RecordedMarkup &src ) 69 { 70 m_ChannelId = src.m_ChannelId ; 71 m_StartTime = src.m_StartTime ; 72 73 CopyListContents< RecordedMarkupItem >( this, m_Markups, src.m_Markups ); 74 } 75 76 RecordedMarkupItem *AddNewMarkupItem() 77 { 78 // We must make sure the object added to the QVariantList has 79 // a parent of 'this' 80 81 RecordedMarkupItem *pObject = new RecordedMarkupItem( this ); 82 m_Markups.append( QVariant::fromValue<QObject *>( pObject )); 83 84 return pObject; 85 } 86 87 }; 88 89 } // namespace DTC 90 91 Q_DECLARE_METATYPE( DTC::RecordedMarkup ) 92 Q_DECLARE_METATYPE( DTC::RecordedMarkup* ) 93 94 #endif -
new file mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkupItem.h
diff --git a/mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkupItem.h b/mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkupItem.h new file mode 100644 index 0000000..5aaeacc
- + 1 ////////////////////////////////////////////////////////////////////////////// 2 // Program Name: recordedMarkupItem.h 3 // Created : Apr. 17, 2013 4 // 5 // Copyright (c) 2013 Tikinou LLC <dev-team@tikinou.com> 6 // 7 // Licensed under the GPL v2 or later, see COPYING for details 8 // 9 ////////////////////////////////////////////////////////////////////////////// 10 11 #ifndef RECORDEDMARKUPITEM_H_ 12 #define RECORDEDMARKUPITEM_H_ 13 14 #include "serviceexp.h" 15 #include "datacontracthelper.h" 16 #include "programtypes.h" 17 18 namespace DTC 19 { 20 21 ///////////////////////////////////////////////////////////////////////////// 22 23 class SERVICE_PUBLIC RecordedMarkupItem : public QObject 24 { 25 Q_OBJECT 26 Q_CLASSINFO( "version" , "1.0" ); 27 28 Q_PROPERTY( int Mark READ Mark WRITE setMark ) 29 Q_PROPERTY( int Data READ Data WRITE setData ) 30 Q_PROPERTY( int DataType READ DataType WRITE setDataType DESIGNABLE SerializeDetails ) 31 32 PROPERTYIMP ( int , Mark ) 33 PROPERTYIMP ( int , Data ) 34 PROPERTYIMP_ENUM ( MarkTypes , DataType ) 35 36 // Used only by Serializer 37 PROPERTYIMP( bool, SerializeDetails ) 38 39 public: 40 41 static void InitializeCustomTypes() 42 { 43 qRegisterMetaType< RecordedMarkupItem >(); 44 qRegisterMetaType< RecordedMarkupItem* >(); 45 } 46 47 public: 48 49 RecordedMarkupItem(QObject *parent = 0) 50 : QObject ( parent ), 51 m_Mark ( 0 ), 52 m_Data ( 0 ), 53 m_DataType ( MARK_ALL ), 54 m_SerializeDetails ( true ) 55 { 56 } 57 58 RecordedMarkupItem( const RecordedMarkupItem &src ) 59 { 60 Copy( src ); 61 } 62 63 void Copy( const RecordedMarkupItem &src ) 64 { 65 m_Mark = src.m_Mark ; 66 m_Data = src.m_Data ; 67 m_DataType = src.m_DataType ; 68 m_SerializeDetails = src.m_SerializeDetails ; 69 } 70 }; 71 72 } // namespace DTC 73 74 Q_DECLARE_METATYPE( DTC::RecordedMarkupItem ) 75 Q_DECLARE_METATYPE( DTC::RecordedMarkupItem* ) 76 77 #endif -
new file mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkupList.h
diff --git a/mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkupList.h b/mythtv/libs/libmythservicecontracts/datacontracts/recordedMarkupList.h new file mode 100644 index 0000000..06e7442
- + 1 ////////////////////////////////////////////////////////////////////////////// 2 // Program Name: recordedMarkupList.h 3 // Created : Apr. 17, 2013 4 // 5 // Copyright (c) 2013 Tikinou LLC <dev-team@tikinou.com> 6 // 7 // Licensed under the GPL v2 or later, see COPYING for details 8 // 9 ////////////////////////////////////////////////////////////////////////////// 10 11 #ifndef RECORDEDMARKUPLIST_H_ 12 #define RECORDEDMARKUPLIST_H_ 13 14 #include <QDateTime> 15 #include <QVariantList> 16 17 #include "serviceexp.h" 18 #include "datacontracthelper.h" 19 20 #include "recordedMarkup.h" 21 22 namespace DTC 23 { 24 25 class SERVICE_PUBLIC RecordedMarkupList : public QObject 26 { 27 Q_OBJECT 28 Q_CLASSINFO( "version", "1.0" ); 29 30 // Q_CLASSINFO Used to augment Metadata for properties. 31 // See datacontracthelper.h for details 32 33 Q_CLASSINFO( "RecordingMarkups", "type=DTC::RecordedMarkup"); 34 Q_CLASSINFO( "AsOf" , "transient=true" ); 35 36 Q_PROPERTY( QDateTime AsOf READ AsOf WRITE setAsOf ) 37 Q_PROPERTY( QVariantList RecordingMarkups READ RecordingMarkups DESIGNABLE true ) 38 39 PROPERTYIMP ( QDateTime , AsOf ) 40 41 PROPERTYIMP_RO_REF( QVariantList, RecordingMarkups ) 42 43 public: 44 45 static void InitializeCustomTypes() 46 { 47 qRegisterMetaType< RecordedMarkupList >(); 48 qRegisterMetaType< RecordedMarkupList* >(); 49 50 RecordedMarkup::InitializeCustomTypes(); 51 } 52 53 public: 54 55 RecordedMarkupList(QObject *parent = 0) 56 : QObject ( parent ) 57 { 58 } 59 60 RecordedMarkupList( const RecordedMarkupList &src ) 61 { 62 Copy( src ); 63 } 64 65 void Copy( const RecordedMarkupList &src ) 66 { 67 m_AsOf = src.m_AsOf ; 68 69 CopyListContents< RecordedMarkup >( this, m_RecordingMarkups, src.m_RecordingMarkups ); 70 } 71 72 RecordedMarkup *AddNewRecordedMarkup() 73 { 74 // We must make sure the object added to the QVariantList has 75 // a parent of 'this' 76 77 RecordedMarkup *pObject = new RecordedMarkup( this ); 78 m_RecordingMarkups.append( QVariant::fromValue<QObject *>( pObject )); 79 80 return pObject; 81 } 82 83 }; 84 85 } // namespace DTC 86 87 Q_DECLARE_METATYPE( DTC::RecordedMarkupList ) 88 Q_DECLARE_METATYPE( DTC::RecordedMarkupList* ) 89 90 #endif -
mythtv/libs/libmythservicecontracts/libmythservicecontracts.pro
diff --git a/mythtv/libs/libmythservicecontracts/libmythservicecontracts.pro b/mythtv/libs/libmythservicecontracts/libmythservicecontracts.pro index 638aa94..11d4b46 100644
a b 40 40 HEADERS += datacontracts/liveStreamInfo.h datacontracts/liveStreamInfoList.h 41 41 HEADERS += datacontracts/labelValue.h 42 42 HEADERS += datacontracts/logMessage.h datacontracts/logMessageList.h 43 HEADERS += datacontracts/recordedMarkupItem.h datacontracts/recordedMarkup.h 44 HEADERS += datacontracts/recordedMarkupList.h 43 45 44 46 SOURCES += service.cpp 45 47 … … 80 82 incDatacontracts.files += datacontracts/liveStreamInfo.h datacontracts/liveStreamInfoList.h 81 83 incDatacontracts.files += datacontracts/labelValue.h 82 84 incDatacontracts.files += datacontracts/logMessage.h datacontracts/logMessageList.h 85 incDatacontracts.files += datacontracts/recordedMarkupItem.h datacontracts/recordedMarkup.h 86 incDatacontracts.files += datacontracts/recordedMarkupList.h 83 87 84 88 INSTALLS += inc incServices incDatacontracts 85 89 -
mythtv/libs/libmythservicecontracts/services/contentServices.h
diff --git a/mythtv/libs/libmythservicecontracts/services/contentServices.h b/mythtv/libs/libmythservicecontracts/services/contentServices.h index cc851b0..d8d4206 100644
a b 19 19 #include "service.h" 20 20 #include "datacontracts/artworkInfoList.h" 21 21 #include "datacontracts/liveStreamInfoList.h" 22 #include "datacontracts/recordedMarkupList.h" 22 23 23 24 ///////////////////////////////////////////////////////////////////////////// 24 25 ///////////////////////////////////////////////////////////////////////////// … … 39 40 class SERVICE_PUBLIC ContentServices : public Service //, public QScriptable ??? 40 41 { 41 42 Q_OBJECT 42 Q_CLASSINFO( "version" , "1.3 2" );43 Q_CLASSINFO( "version" , "1.33" ); 43 44 Q_CLASSINFO( "DownloadFile_Method", "POST" ) 44 45 45 46 public: … … 51 52 { 52 53 DTC::ArtworkInfoList::InitializeCustomTypes(); 53 54 DTC::LiveStreamInfoList::InitializeCustomTypes(); 55 DTC::RecordedMarkupList::InitializeCustomTypes(); 54 56 } 55 57 56 58 public slots: … … 102 104 virtual bool DownloadFile ( const QString &URL, 103 105 const QString &StorageGroup ) = 0; 104 106 107 virtual DTC::RecordedMarkup *GetRecordingMarkups ( int ChanId, 108 const QDateTime &StartTime ) = 0; 109 110 virtual DTC::RecordedMarkupList *GetAllRecordingMarkups ( void ) = 0; 111 112 105 113 virtual DTC::LiveStreamInfo *AddLiveStream ( const QString &StorageGroup, 106 114 const QString &FileName, 107 115 const QString &HostName, -
mythtv/programs/mythbackend/services/content.cpp
diff --git a/mythtv/programs/mythbackend/services/content.cpp b/mythtv/programs/mythbackend/services/content.cpp index 97758be..7927a1f 100644
a b 632 632 ///////////////////////////////////////////////////////////////////////////// 633 633 // 634 634 ///////////////////////////////////////////////////////////////////////////// 635 DTC::RecordedMarkup *Content::GetRecordingMarkups ( int chanId, 636 const QDateTime &startTime ) 637 { 638 MSqlQuery query(MSqlQuery::InitCon()); 639 640 if (!query.isConnected()) 641 throw( QString("Database not open while trying to get " 642 "Recording Markups.")); 643 query.prepare("SELECT chanid, starttime, mark, type, data " 644 " FROM recordedmarkup " 645 " WHERE chanid = :CHANID AND starttime = :STARTTIME " 646 " ORDER BY starttime"); 647 648 query.bindValue( ":CHANID", chanId ); 649 query.bindValue( ":STARTTIME", startTime ); 650 651 if (!query.exec()) 652 { 653 MythDB::DBError("MythAPI::GetRecordingMarkups()", query); 654 throw( QString( "Database Error executing query." )); 655 } 656 // ---------------------------------------------------------------------- 657 // return the results of the query 658 // ---------------------------------------------------------------------- 659 660 DTC::RecordedMarkup *pRecordedMarkup = new DTC::RecordedMarkup(); 661 662 while (query.next()) 663 { 664 QDateTime dateTime = MythDate::as_utc(query.value(1).toDateTime()); 665 pRecordedMarkup->setChannelId ( query.value(0).toInt() ); 666 pRecordedMarkup->setStartTime ( dateTime ); 667 668 DTC::RecordedMarkupItem *pItem = pRecordedMarkup->AddNewMarkupItem(); 669 pItem->setMark ( query.value(2).toInt() ); 670 pItem->setDataType ( query.value(3).toInt() ); 671 pItem->setData ( query.value(4).toInt() ); 672 } 673 674 return pRecordedMarkup; 675 } 676 677 ///////////////////////////////////////////////////////////////////////////// 678 // 679 ///////////////////////////////////////////////////////////////////////////// 680 DTC::RecordedMarkupList *Content::GetAllRecordingMarkups ( void ) 681 { 682 MSqlQuery query(MSqlQuery::InitCon()); 683 684 if (!query.isConnected()) 685 throw( QString("Database not open while trying to get " 686 "Recording Markups.")); 687 query.prepare("SELECT chanid, starttime, mark, type, data " 688 " FROM recordedmarkup " 689 " ORDER BY chanid, starttime" ); 690 691 if (!query.exec()) 692 { 693 MythDB::DBError("MythAPI::GetRecordingMarkups()", query); 694 throw( QString( "Database Error executing query." )); 695 } 696 // ---------------------------------------------------------------------- 697 // return the results of the query 698 // ---------------------------------------------------------------------- 699 700 DTC::RecordedMarkupList* pList = new DTC::RecordedMarkupList(); 701 702 int previousChanId = -1; 703 QDateTime previousDateTime; 704 DTC::RecordedMarkup *pRecordedMarkup = NULL; 705 while (query.next()) 706 { 707 QDateTime dateTime = MythDate::as_utc(query.value(1).toDateTime()); 708 if(dateTime != previousDateTime) 709 { 710 pRecordedMarkup = pList->AddNewRecordedMarkup(); 711 pRecordedMarkup->setChannelId ( query.value(0).toInt() ); 712 pRecordedMarkup->setStartTime ( dateTime ); 713 previousDateTime = dateTime; 714 } 715 DTC::RecordedMarkupItem *pItem = pRecordedMarkup->AddNewMarkupItem(); 716 pItem->setMark ( query.value(2).toInt() ); 717 pItem->setDataType ( query.value(3).toInt() ); 718 pItem->setData ( query.value(4).toInt() ); 719 } 720 721 pList->setAsOf ( MythDate::current() ); 722 723 return pList; 724 } 725 726 ///////////////////////////////////////////////////////////////////////////// 727 // 728 ///////////////////////////////////////////////////////////////////////////// 635 729 636 730 QFileInfo Content::GetMusic( int nId ) 637 731 { -
mythtv/programs/mythbackend/services/content.h
diff --git a/mythtv/programs/mythbackend/services/content.h b/mythtv/programs/mythbackend/services/content.h index 9655321..b07cd1f 100644
a b 85 85 bool DownloadFile ( const QString &URL, 86 86 const QString &StorageGroup ); 87 87 88 DTC::RecordedMarkup *GetRecordingMarkups ( int ChanId, 89 const QDateTime &StartTime ); 90 91 DTC::RecordedMarkupList *GetAllRecordingMarkups ( void ); 92 88 93 // HTTP Live Streaming 89 94 DTC::LiveStreamInfo *AddLiveStream ( const QString &StorageGroup, 90 95 const QString &FileName,