DtvKit_ATSC3.0
Loading...
Searching...
No Matches
atsc_mw_service.h
Go to the documentation of this file.
1/*******************************************************************************
2 * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3 *
4 * This file is part of a DTVKit Software Component
5 * You are permitted to copy, modify or distribute this file subject to the terms
6 * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
7 *
8 * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
9 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
10 * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
11 *
12 * If you or your organisation is not a member of DTVKit then you have access
13 * to this source code outside of the terms of the licence agreement
14 * and you are expected to delete this and any associated files immediately.
15 * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
16 *******************************************************************************/
17
18#pragma once
19#include <pthread.h>
20#include <mutex>
21
22#include "atsc_types.h"
23#include "atsc_core_utils_json.h"
25#include "atsc_core.h"
26
34typedef struct {
35 uint32_t iSize;
36 uint8_t cCh;
37 uint8_t sData[2048];
39
43typedef struct {
44 int32_t iStartCh;
45 int32_t iEndCh;
46 int32_t iPlpId;
47 int32_t iTunerId;
51
52
57public:
65
73
80 int32_t GetSupportedStandards(void);
81
89
97
105
113
121
129 eATSCResult_t Frontend_TuneToChannel(int32_t iId,int32_t iCh,int32_t iPlp,
130 eDemod_t iDemod,eRegion_t iRegion);
131
138 eATSCResult_t Frontend_TuneToChannel( int32_t iId, int32_t iCh,int32_t iPlp);
139
147 eATSCResult_t Frontend_ScanChannels(int32_t iTunerId, int32_t iStartCh,
148 int32_t iEndCh, int32_t iDemod , int32_t iPlpId);
149
157 eATSCResult_t Frontend_ScanChannels(int32_t iId, int32_t iStartCh,
158 int32_t iEndCh,int32_t iDemod,int32_t iPlp,
159 int32_t iRegion);
167
175
183
184
192
193
201
202
210
218
226
235 std::string GetQueryHttpResponse( std::string sContentData );
236
243 std::string GetGuideInfo(char *sUri);
244
251 std::string GetTunerInfo(sFeStatus_t *pStatus,int32_t iTunerId);
252
259 std::string GetTunersInfo( void );
260
267 std::string GetVersion( char *pVersion );
268
275 std::string GetPrepareTunerInfo(int32_t iInstance , sFeStatus_t *pStatus);
276
283 std::string GetDumpHistory(void);
284
291 std::string RequestMWService(std::string sUri, char *pContentData);
292
299 std::string RequestMWDump(std::string sUri, int32_t iHttpType);
300
307 std::string MwRequestTuners(std::string sUri, char *pContentData);
308
309 std::string MwRequestUserService(std::string sUri, char *pContentData );
310
317 std::string MwRequestScan(std::string sUri, char *pContentData);
318
325 void StartScan(sScanScenario_t *scenario);
326
333 void StopScan( void );
334
341 Json::Value GetScanningInfo( void );
342
349 std::list<sScanResult_t> GetScanningStatus( void );
350
358
365 std::string GetSystemTime( void );
366
374
381 void RegisterOnsnEventNotify(OnScreenNotify fParamsPtr);
382
389 std::string GetFrontendConfiguration( void );
390
391 void GetUserServiceInfo( int32_t iServiceId , int32_t iPhyCh , int32_t iMajorCh , int32_t iMinorCh );
392
393 bool ChannelBasedTune( int32_t iUserCh );
394
395private:
396 bool mRunning;
398 int32_t mTunerId;
399 int32_t mInstances;
400 int32_t mChannel;
401 eRegion_t mRegion;
402 eDemod_t mDemod;
404 sFeStatus_t mTunerInfo[16];
405 std::thread *mAlpThread;
406 std::thread *mScanThread;
407 std::recursive_mutex mMut;
409 std::queue<sAlpBuffer_t> mAlpQueue;
410 std::map<uint32_t, CFeCtrl*>mTunerCtrl;
412 FeStatusCbFunc mFrontendStatusCb = nullptr;
413 FeParamsCbFunc mFrontendParamsCb = nullptr;
414 OnScreenNotify mOnScreenNotify = nullptr;
416 CAtscCore *mAtscCore;
418 sScanScenario_t mScanScenario;
419 std::list<sScanResult_t> mScanResult;
420 eScanResult scanstatus;
422 std::thread *mSystemTimeThread;
424//private methods
431 eATSCResult_t OpenFrontend(int32_t iCount);
432
439 eATSCResult_t StartService(void);
440
447 void Frontend_CbDataEvent(sFeData_t *pData);
448
455 void Frontend_CbNotifyEvent(sFeParams_t notify);
456
463 void Frontend_CbStatusEvent( sFeStatus_t status);
464
471 eATSCResult_t GetAlpData(uint8_t *pData, uint32_t *pSize, uint32_t *pCh);
472
479 int32_t ProcessAlpData(int32_t iCh, uint8_t *pData, uint32_t iDataLen);
480
487 void AlpDataHandlerThread( void );
488
495 void ChannelScanHandlerThread( void );
496
503 void ThreadOnscrenNotify(void);
504};
eDemod_t
Definition atsc_types.h:215
eRegion_t
Definition atsc_types.h:227
eScanResult
Definition atsc_types.h:244
eATSCResult_t
Definition atsc_types.h:203
Definition atsc_core.h:41
Definition atsc_mw_service.h:56
eATSCResult_t Frontend_RegisterParamEventCb(FeParamsCbFunc ptrfunc)
Register frontend params callback.
CMwService()
Constructor of CMwService.
std::string RequestMWService(std::string sUri, char *pContentData)
Request for Services.
void RegisterOnsnEventNotify(OnScreenNotify fParamsPtr)
Notification event for osn message.
std::string GetDumpHistory(void)
Get the Dump data for the tuner information in the root path.
~CMwService()
Destructor for CMwService.
eATSCResult_t SetDemod(eDemod_t iDemod)
Set Demod type :Default :ATSC3.0.
eATSCResult_t Frontend_RegisterStatusEventCb(FeStatusCbFunc fStatusPtr)
Register frontend status callback.
int32_t GetSupportedStandards(void)
read supported standards
eATSCResult_t Frontend_GetProperties(int32_t iId, sFeProp_t *pProps)
Read frontend properties.
void StartScan(sScanScenario_t *scenario)
Request for Start Channel scanning.
std::string GetQueryHttpResponse(std::string sContentData)
Get the http response and query for the signaling methods.
eDemod_t GetDemod(void)
returns current Demod ID
sServiceListTable_t GetSltServiceData(void)
Get slt data.
std::string GetPrepareTunerInfo(int32_t iInstance, sFeStatus_t *pStatus)
Prepare the tuner information in xml/json format.
std::string GetVersion(char *pVersion)
Get the version of the MW application.
std::string MwRequestTuners(std::string sUri, char *pContentData)
Request for Tuners.
sRrtDataTable_t GetRrt(void)
To get the rating regional information.
bool mScanning
Definition atsc_mw_service.h:227
std::string MwRequestScan(std::string sUri, char *pContentData)
Request for Scan.
int32_t GetAvailNoOfFrontendInstances(void)
returns available number of frontend instances
std::string RequestMWDump(std::string sUri, int32_t iHttpType)
Request for Dump data.
std::string GetFrontendConfiguration(void)
Get the tuner related configuration.
eATSCResult_t Frontend_Start(int32_t iId)
Start frontend functionality.
eRegion_t GetRegion(void)
returns current region ID
std::string GetTunersInfo(void)
Get the Tuner Info for two instances and passed to web application.
std::list< sScanResult_t > GetScanningStatus(void)
Request for getting scanning paremeters information.
eATSCResult_t Frontend_StopChannelScan(int32_t iId)
Stop channel scan.
std::string GetSystemTime(void)
To get read system time.
Json::Value GetScanningInfo(void)
Request for getting scanning paremeters information.
std::string GetGuideInfo(char *sUri)
Get the Guide information.
void StopScan(void)
Request for Stop Channel scanning.
eATSCResult_t Frontend_GetStatus(int32_t iId, sFeStatus_t *pStatus)
Read frontend status.
eATSCResult_t SetRegion(eRegion_t iRegion)
Set region:Default :US.
eATSCResult_t Frontend_Stop(int32_t iId)
Stop frontend functionality.
void ThreadScan()
Thread handler to perform the channel scanning.
std::string GetTunerInfo(sFeStatus_t *pStatus, int32_t iTunerId)
Get the Tuner Info and passed to web application.
Definition atsc_mw_service.h:34
uint8_t cCh
Definition atsc_mw_service.h:36
uint32_t iSize
Definition atsc_mw_service.h:35
Definition atsc_mw_frontend_control.h:76
Definition atsc_types.h:325
Definition atsc_types.h:338
Definition atsc_mw_service.h:43
int32_t iEndCh
Definition atsc_mw_service.h:45
int32_t iPlpId
Definition atsc_mw_service.h:46
int32_t iStartCh
Definition atsc_mw_service.h:44
int32_t iTunerId
Definition atsc_mw_service.h:47
eDemod_t iDemod
Definition atsc_mw_service.h:48
eRegion_t iRegionId
Definition atsc_mw_service.h:49
Definition atsc_types.h:302
Definition atsc_types.h:507
Definition atsc_types.h:397
Definition atsc_types.h:651