bool HDHRStreamHandler::TuneVChannel(const QString &vchn) { _tune_mode = hdhrTuneModeVChannel; LOG(VB_RECORD, LOG_INFO, LOC + QString("Tuning vchannel %1").arg(vchn)); return !TunerSet( "vchannel", vchn).isEmpty(); }
QString HDHRStreamHandler::TunerSet( const QString &name, const QString &val, bool report_error_return, bool print_error) { QMutexLocker locker(&_hdhr_lock); if (!_hdhomerun_device) { VERBOSE(VB_IMPORTANT, LOC_ERR + "Set request failed (not connected)"); return QString::null; } QString valname = QString("/tuner%1/%2").arg(_tuner).arg(name); char *value = NULL; char *error = NULL; if (hdhomerun_device_set_var( _hdhomerun_device, valname.toLocal8Bit().constData(), val.toLocal8Bit().constData(), &value, &error) < 0) { VERBOSE(VB_IMPORTANT, LOC_ERR + "Set request failed" + ENO); return QString::null; } // Database modulation strings and HDHR use different syntax. // HACK!! Caller should be doing this. (e.g. auto in HDHRChannel::Tune()) // if (error && name == QString("channel") && val.contains("qam_")) { QString newval = val; newval.replace("qam_256", "qam"); newval.replace("qam_64", "qam"); VERBOSE(VB_CHANNEL, "HDHRSH::TunerSet() Failed. Trying " + newval); return TunerSet(name, newval, report_error_return, print_error); } if (report_error_return && error) { if (print_error) { VERBOSE(VB_IMPORTANT, LOC_ERR + QString("DeviceSet(%1 %2): %3") .arg(name).arg(val).arg(error)); } return QString::null; } return QString(value); }
bool HDHRStreamHandler::TuneProgram(uint mpeg_prog_num) { if (_tune_mode == hdhrTuneModeFrequency) _tune_mode = hdhrTuneModeFrequencyProgram; if (_tune_mode != hdhrTuneModeFrequencyProgram) { VERBOSE(VB_IMPORTANT, LOC_ERR + "TuneProgram called in wrong tune mode"); return false; } VERBOSE(VB_RECORD, QString(LOC + "Tuning program %1").arg(mpeg_prog_num)); return !TunerSet( "program", QString::number(mpeg_prog_num), false).isEmpty(); }
bool HDHRStreamHandler::TuneChannel(const QString &chn) { _tune_mode = hdhrTuneModeFrequency; QString current = TunerGet("channel"); if (current == chn) { VERBOSE(VB_RECORD, QString(LOC + "Not Re-Tuning channel %1").arg(chn)); return true; } VERBOSE(VB_RECORD, QString(LOC + "Tuning channel %1 (was %2)") .arg(chn).arg(current)); return !TunerSet("channel", chn).isEmpty(); }
bool HDHRStreamHandler::TuneProgram(uint mpeg_prog_num) { if (_tune_mode == hdhrTuneModeFrequency) _tune_mode = hdhrTuneModeFrequencyProgram; if (_tune_mode != hdhrTuneModeFrequencyProgram) { LOG(VB_GENERAL, LOG_ERR, LOC + "TuneProgram called in wrong tune mode"); return false; } LOG(VB_RECORD, LOG_INFO, LOC + QString("Tuning program %1") .arg(mpeg_prog_num)); return !TunerSet( "program", QString::number(mpeg_prog_num), false).isEmpty(); }
bool HDHRStreamHandler::UpdateFilters(void) { if (_tune_mode == hdhrTuneModeFrequency) _tune_mode = hdhrTuneModeFrequencyPid; if (_tune_mode != hdhrTuneModeFrequencyPid) { LOG(VB_GENERAL, LOG_ERR, LOC + "UpdateFilters called in wrong tune mode"); return false; } #ifdef DEBUG_PID_FILTERS LOG(VB_RECORD, LOG_INFO, LOC + "UpdateFilters()"); #endif // DEBUG_PID_FILTERS QMutexLocker locker(&_pid_lock); QString filter = ""; vector<uint> range_min; vector<uint> range_max; PIDInfoMap::const_iterator it = _pid_info.begin(); for (; it != _pid_info.end(); ++it) { range_min.push_back(it.key()); PIDInfoMap::const_iterator eit = it; for (++eit; (eit != _pid_info.end()) && (it.key() + 1 == eit.key()); ++it, ++eit); range_max.push_back(it.key()); } if (range_min.size() > 16) { range_min.resize(16); uint pid_max = range_max.back(); range_max.resize(15); range_max.push_back(pid_max); } for (uint i = 0; i < range_min.size(); i++) { filter += filt_str(range_min[i]); if (range_min[i] != range_max[i]) filter += QString("-%1").arg(filt_str(range_max[i])); filter += " "; } filter = filter.trimmed(); QString new_filter = TunerSet("filter", filter); #ifdef DEBUG_PID_FILTERS QString msg = QString("Filter: '%1'").arg(filter); if (filter != new_filter) msg += QString("\n\t\t\t\t'%2'").arg(new_filter); LOG(VB_RECORD, LOG_INFO, LOC + msg); #endif // DEBUG_PID_FILTERS return filter == new_filter; }
bool HDHRStreamHandler::UpdateFilters(void) { if (_tune_mode == hdhrTuneModeFrequency) _tune_mode = hdhrTuneModeFrequencyPid; if (_tune_mode != hdhrTuneModeFrequencyPid) { VERBOSE(VB_IMPORTANT, LOC_ERR + "UpdateFilters called in wrong tune mode"); return false; } #ifdef DEBUG_PID_FILTERS VERBOSE(VB_RECORD, LOC + "UpdateFilters()"); #endif // DEBUG_PID_FILTERS QMutexLocker locker(&_pid_lock); QString filter = ""; vector<uint> range_min; vector<uint> range_max; for (uint i = 0; i < _pid_info.size(); i++) { uint pid_min = _pid_info[i]; uint pid_max = pid_min; for (uint j = i + 1; j < _pid_info.size(); j++) { if (pid_max + 1 != _pid_info[j]) break; pid_max++; i++; } range_min.push_back(pid_min); range_max.push_back(pid_max); } if (range_min.size() > 16) { range_min.resize(16); uint pid_max = range_max.back(); range_max.resize(15); range_max.push_back(pid_max); } for (uint i = 0; i < range_min.size(); i++) { filter += filt_str(range_min[i]); if (range_min[i] != range_max[i]) filter += QString("-%1").arg(filt_str(range_max[i])); filter += " "; } filter = filter.trimmed(); QString new_filter = TunerSet("filter", filter); #ifdef DEBUG_PID_FILTERS QString msg = QString("Filter: '%1'").arg(filter); if (filter != new_filter) msg += QString("\n\t\t\t\t'%2'").arg(new_filter); VERBOSE(VB_RECORD, LOC + msg); #endif // DEBUG_PID_FILTERS return filter == new_filter; }
int TAP_Main (void) { AddTime(0, 0); BMP_WriteHeader(NULL, 0, 0); BootReason(); BuildWindowBorder(); BuildWindowInfo(); BuildWindowLine(); BuildWindowLineSelected(); BuildWindowScrollBar(); BuildWindowTitle(); busyWait(); CalcAbsSectorFromFAT(NULL, 0); CalcPrepare(); CalcTopIndex(0, 0); Callback(0, NULL, 0, 0, 0, 0); CallbackHelper(NULL, NULL, 0, 0, 0, 0); CallBIOS(0, 0, 0, 0, 0); CallFirmware(0, 0, 0, 0, 0); CallTraceEnable(FALSE); CallTraceEnter(NULL); CallTraceExit(NULL); CallTraceInit(); CaptureScreen(0, 0, 0, NULL, 0, 0); ChangeDirRoot(); CheckSelectable(0, 0); combineVfdData(NULL, NULL); compact(NULL, 0); CompressBlock(NULL, 0, NULL); CompressedTFDSize(NULL, 0, NULL); CompressTFD(NULL, 0, NULL, 0, 0, NULL); CRC16(0, NULL, 0); CRC32 (0, NULL, 0); Delay(0); DialogEvent(NULL, NULL, NULL); DialogMsgBoxButtonAdd(NULL, FALSE); DialogMsgBoxExit(); DialogMsgBoxInit(NULL, NULL, NULL, NULL); DialogMsgBoxShow(); DialogMsgBoxShowInfo(0); DialogMsgBoxShowOK(); DialogMsgBoxShowOKCancel(0); DialogMsgBoxShowYesNo(0); DialogMsgBoxShowYesNoCancel(0); DialogMsgBoxTitleSet(NULL, NULL); DialogProfileChange(NULL); DialogProfileCheck(NULL, NULL, FALSE); DialogProfileLoad(NULL); DialogProfileLoadDefault(); DialogProfileLoadMy(NULL, FALSE); DialogProfileSave(NULL); DialogProfileSaveDefault(); DialogProfileScrollBehaviourChange(FALSE, FALSE); DialogProgressBarExit(); DialogProgressBarInit(NULL, NULL, 0, 0, NULL, 0, 0); DialogProgressBarSet(0, 0); DialogProgressBarShow(); DialogProgressBarTitleSet(NULL); DialogWindowChange(NULL, FALSE); DialogWindowCursorChange(FALSE); DialogWindowCursorSet(0); DialogWindowExit(); DialogWindowHide(); DialogWindowInfoAddIcon(0, 0, NULL); DialogWindowInfoAddS(0, 0, 0, NULL, 0, 0, 0, 0, 0); DialogWindowInfoDeleteAll(); DialogWindowInit(NULL, NULL, 0, 0, 0, 0, NULL, NULL, NULL, 0, 0, 0); DialogWindowItemAdd(NULL, 0, NULL, 0, FALSE, FALSE, 0, NULL); DialogWindowItemAddSeparator(); DialogWindowItemChangeFlags(0, FALSE, FALSE); DialogWindowItemChangeIcon(0, 0, NULL); DialogWindowItemChangeParameter(0, NULL, 0); DialogWindowItemChangeValue(0, NULL, 0); DialogWindowItemDelete(0); DialogWindowItemDeleteAll(); DialogWindowRefresh(); DialogWindowReInit(0, 0, 0, 0, 0, 0); DialogWindowScrollDown(); DialogWindowScrollDownPage(); DialogWindowScrollUp(); DialogWindowScrollUpPage(); DialogWindowShow(); DialogWindowTabulatorSet(0, 0); DialogWindowTitleChange(NULL, NULL, NULL); DialogWindowTypeChange(0); DrawMsgBoxButtons(); DrawMsgBoxTitle(); DrawOSDLine(0, 0, 0, 0, 0, 0); DrawProgressBarBar(0, 0); DrawProgressBarTitle(); DrawWindowBorder(); DrawWindowInfo(); DrawWindowLine(0); DrawWindowLines(); DrawWindowScrollBar(); DrawWindowTitle(); EndMessageWin(); exitHook(); ExtractLine(NULL, NULL); FileSelector(NULL, NULL, NULL, 0); FileSelectorKey(0, 0); FindDBTrack(); FindInstructionSequence(NULL, NULL, 0, 0, 0, 0); findSendToVfdDisplay(0, 0); FlashAddFavourite(NULL, 0, FALSE); FlashDeleteFavourites(); FlashFindEndOfServiceNameTableAddress(); FlashFindEndOfServiceTableAddress(0); FlashFindServiceAddress(0, 0, 0, 0); FlashFindTransponderIndex(0, 0, 0); FlashGetBlockStartAddress(0); FlashGetChannelNumber(0, 0, 0, 0); FlashGetSatelliteByIndex(0); FlashGetServiceByIndex(0, FALSE); FlashGetServiceByName (NULL, FALSE); FlashGetTransponderCByIndex(0); FlashGetTransponderSByIndex(0, 0); FlashGetTransponderTByIndex(0); FlashGetTrueLocalTime(0, 0); FlashGetType(); FlashInitialize(0); FlashProgram(); FlashReindexFavourites(0, 0, 0); FlashReindexTimers(0, 0, 0); FlashRemoveCASServices(FALSE); FlashRemoveServiceByIndex(0, FALSE); FlashRemoveServiceByIndexString(NULL, FALSE); FlashRemoveServiceByLCN(NULL, FALSE); FlashRemoveServiceByName(NULL, FALSE); FlashRemoveServiceByPartOfName(NULL, FALSE); FlashRemoveServiceByUHF(NULL, FALSE, FALSE); FlashServiceAddressToServiceIndex(NULL); FlashWrite(NULL, NULL, 0, NULL); FlushCache(NULL, 0); FreeOSDRegion(0); fwHook(0); GetAudioTrackPID(0, NULL); GetClusterPointer(0); GetCurrentEvent(NULL); GetEEPROMAddress(); GetEEPROMPin(); GetFrameBufferPixel(0, 0); GetFrameSize(0, 0); GetFWInfo(0, 0, 0, 0, 0, 0, 0, 0); GetHeapParameter(NULL, 0); GetLine(NULL, 0); GetOSDMapAddress(); GetOSDRegionHeight(0); GetOSDRegionWidth(0); GetPinStatus(); GetPIPPosition(NULL, NULL, NULL, NULL); getRECSlotAddress(); GetSysOsdControl(0); GetToppyString(0); HasEnoughItemMemory(); HDD_AAM_Disable(); HDD_AAM_Enable(0); HDD_APM_Disable(); HDD_APM_Enable(0); HDD_BigFile_Read(NULL, 0, 0, NULL); HDD_BigFile_Size(NULL); HDD_BigFile_Write(NULL, 0, 0, NULL); HDD_ChangeDir(NULL); HDD_DecodeRECHeader(NULL, NULL); HDD_EncodeRECHeader(NULL, NULL, 0); HDD_FappendOpen(NULL); HDD_FappendWrite(NULL, NULL); HDD_FindPCR(NULL, 0); HDD_FindPMT(NULL, 0, NULL); HDD_FreeSize(); HDD_GetClusterSize(); HDD_GetFileDir(NULL, 0, NULL); HDD_GetFirmwareDirCluster(); HDD_GetHddID(NULL, NULL, NULL); HDD_IdentifyDevice(NULL); HDD_isAnyRecording(); HDD_isCryptedStream(NULL, 0); HDD_isRecording(0); HDD_LiveFS_GetChainLength(0); HDD_LiveFS_GetFAT1Address(); HDD_LiveFS_GetFAT2Address(); HDD_LiveFS_GetFirstCluster(0); HDD_LiveFS_GetLastCluster(0); HDD_LiveFS_GetNextCluster(0); HDD_LiveFS_GetPreviousCluster(0); HDD_LiveFS_GetRootDirAddress(); HDD_LiveFS_GetSuperBlockAddress(); HDD_MakeNewRecName(NULL, 0); HDD_Move(NULL, NULL, NULL); HDD_ReadClusterDMA(0, NULL); HDD_ReadSector(0, 0); HDD_ReadSectorDMA(0, 0, NULL); HDD_RECSlotGetAddress(0); HDD_RECSlotIsPaused(0); HDD_RECSlotPause(0, FALSE); HDD_RECSlotSetDuration(0, 0); HDD_SetCryptFlag(NULL, 0); HDD_SetFileDateTime(NULL, 0, 0, 0); HDD_SetSkipFlag (NULL, FALSE); HDD_SetStandbyTimer(0); HDD_Smart_DisableAttributeAutoSave(); HDD_Smart_DisableOperations(); HDD_Smart_EnableAttributeAutoSave(); HDD_Smart_EnableOperations(); HDD_Smart_ExecuteOfflineImmediate(0); HDD_Smart_ReadData(0); HDD_Smart_ReadThresholdData(0); HDD_Smart_ReturnStatus(); HDD_Stop(); HDD_TAP_Callback(0, NULL, 0, 0, 0, 0); HDD_TAP_Disable(0, 0); HDD_TAP_DisableAll(0); HDD_TAP_DisabledEventHandler(0, 0, 0); HDD_TAP_GetCurrentDir(NULL); HDD_TAP_GetCurrentDirCluster(); HDD_TAP_GetIDByFileName(NULL); HDD_TAP_GetIDByIndex(0); HDD_TAP_GetIndexByID(0); HDD_TAP_GetInfo(0, NULL); HDD_TAP_GetStartParameter(); HDD_TAP_isAnyRunning(); HDD_TAP_isBatchMode(); HDD_TAP_isDisabled(0); HDD_TAP_isDisabledAll(); HDD_TAP_isRunning(0); HDD_TAP_SendEvent(0, FALSE, 0, 0, 0); HDD_TAP_SetCurrentDirCluster(0); HDD_TAP_Start(NULL, FALSE, NULL, NULL); HDD_TAP_StartedByTAP(); HDD_TAP_Terminate(0); HDD_TouchFile(NULL); HDD_TranslateDirCluster(0, NULL); HDD_TruncateFile(NULL, 0); HDD_Write(NULL, 0, NULL); HDD_WriteClusterDMA(0, NULL); HDD_WriteSectorDMA(0, 0, NULL); HookEnable(0, 0); HookExit(); HookIsEnabled(0); HookMIPS_Clear(0, 0, 0); HookMIPS_Set(0, 0, 0); HookSet(0, 0); IMEM_Alloc(0); IMEM_Init(0); IMEM_isInitialized(); IMEM_Compact(); IMEM_Free(NULL); IMEM_GetInfo(NULL, NULL); IMEM_Kill(); InfoTestGrid(); INICloseFile(); INIFindStartEnd(NULL, NULL, NULL, 0); INIGetARGB(NULL, NULL, NULL, NULL, NULL, 0); INIGetHexByte(NULL, 0, 0, 0); INIGetHexDWord(NULL, 0, 0, 0); INIGetHexWord(NULL, 0, 0, 0); INIGetInt(NULL, 0, 0, 0); INIGetString(NULL, NULL, NULL, 0); INIKillKey(NULL); INIOpenFile(NULL); INISaveFile(NULL); INISetARGB(NULL, 0, 0, 0, 0); INISetComment(NULL); INISetHexByte(NULL, 0); INISetHexDWord(NULL, 0); INISetHexWord(NULL, 0); INISetInt(NULL, 0); INISetString(NULL, NULL); initCodeWrapper(0); InitTAPAPIFix(); InitTAPex(); InteractiveGetStatus(); InteractiveSetStatus(FALSE); intLock(); intUnlock(0); isAnyOSDVisible(0, 0, 0, 0); isLegalChar(0, 0); isMasterpiece(); isMPMenu(); iso639_1(0); isOSDRegionAlive(0); isValidChannel(NULL); LangGetString(0); LangLoadStrings(NULL, 0, 0); LangUnloadStrings(); Log(NULL, NULL, FALSE, 0, NULL); LowerCase(NULL); MakeValidFileName(NULL, 0); MHEG_Status(); MPDisplayClearDisplay(); MPDisplayClearSegments(0, 0); MPDisplayDisplayLongString(NULL); MPDisplayDisplayShortString(NULL); MPDisplayGetDisplayByte(0); MPDisplayGetDisplayMask(0); MPDisplayInstallMPDisplayFwHook(); MPDisplaySetAmFlag(0); MPDisplaySetColonFlag(0); MPDisplaySetDisplayByte(0, 0); MPDisplaySetDisplayMask(0, 0); MPDisplaySetDisplayMemory(NULL); MPDisplaySetDisplayMode(0); MPDisplaySetPmFlag(0); MPDisplaySetSegments(0, 0); MPDisplayToggleSegments(0, 0); MPDisplayUninstallMPDisplayFwHook(); MPDisplayUpdateDisplay(); Now(NULL); OSDCopy(0, 0, 0, 0, 0, 0, 0); OSDLinesForeDirty(FALSE); ParseLine(NULL, NULL, 0); ProfileDirty(); ProfileInit(); ProfileLoad(NULL, FALSE); ProfileMayReload(); ReadEEPROM(0, 0, NULL); ReadIICRegister(0, 0, 0, 0, NULL); Reboot(0); ReceiveSector(0); RTrim(NULL); SaveBitmap(NULL, 0, 0, NULL); SendEvent(0, 0, 0, 0); SendEventHelper(NULL, 0, 0, 0); SendHDDCommand(0, 0, 0, 0, 0, 0, 0); SendToFP(NULL); SeparatePathComponents(NULL, NULL, NULL, NULL); SetCrashBehaviour(0); setSymbol14(0, 0); setSymbol17(0, 0); ShowMessageWin(NULL, NULL, NULL, 0); ShowMessageWindow(NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0); Shutdown(0); SoundSinus(0, 0, 0); StrEndsWith(NULL, NULL); stricstr(NULL, NULL); SubtitleGetStatus(); SubtitleSetStatus(FALSE); SuppressedAutoStart(); SwapDWords(0); SwapWords(0); TAP_Osd_PutFreeColorGd(0, 0, 0, NULL, FALSE, 0); TAPCOM_CloseChannel(NULL); TAPCOM_Finish(NULL, 0); TAPCOM_GetChannel(0, NULL, NULL, NULL, NULL); TAPCOM_GetReturnValue(NULL); TAPCOM_GetStatus(NULL); TAPCOM_LastAlive(NULL); TAPCOM_OpenChannel(0, 0, 0, NULL); TAPCOM_Reject(NULL); TAPCOM_StillAlive(NULL); TFDSize(NULL); TimeDiff(0, 0); TimeFormat(0, 0, 0); TunerGet(0); TunerSet(0); UncompressBlock(NULL, 0, NULL, 0); UncompressedFirmwareSize(NULL); UncompressedLoaderSize(NULL); UncompressedTFDSize(NULL); UncompressFirmware(NULL, NULL, NULL); UncompressLoader(NULL, NULL, NULL); UncompressTFD(NULL, NULL, NULL); UpperCase(NULL); ValidFileName(NULL, 0); WindowDirty(); WriteIICRegister(0, 0, 0, 0, NULL); YUV2RGB(0, 0, 0, NULL, NULL, NULL); YUV2RGB2(0, 0, 0, NULL, NULL, NULL); return 0; }