bool HDD_TAP_isDisabledAll(void)
{
  TRACEENTER();

  dword                 i;
  tTMSTAPTaskTable     *TMSTAPTaskTable;

  TMSTAPTaskTable = (tTMSTAPTaskTable*)FIS_vTAPTable();

  //The curTapTask variable is not thread safe. Call InitTAPex() if this function will be called from a sub thread
  if(TAP_TableIndex == 0xffffffff)
  {
    dword                *curTapTask;

    curTapTask = (dword*)FIS_vCurTapTask();
    if(!curTapTask)
    {
      TRACEEXIT();
      return FALSE;
    }
    TAP_TableIndex = *curTapTask;
  }

  for(i = 0; i < TAP_MAX; i++)
  {
    if((i != TAP_TableIndex) && (TMSTAPTaskTable[i].Status == 1) && (TMSTAPTaskTable[i].unused5 == 0))
    {
      TRACEEXIT();
      return FALSE;
    }
  }

  TRACEEXIT();
  return TRUE;
}
bool OSDMenuItemModifyValue(int ItemIndex, char *Text)
{
  TRACEENTER();

  tMenu                *pMenu;

  pMenu = &Menu[CurrentMenuLevel];

  if((pMenu->NrItems == 0) || (ItemIndex >= pMenu->NrItems))
  {
    TRACEEXIT();
    return FALSE;
  }

  if(!Text)
  {
    TRACEEXIT();
    return FALSE;
  }

  strncpy(pMenu->Item[ItemIndex].Value, Text, ITEMNAMESIZE);
  pMenu->Item[ItemIndex].Value[ITEMNAMESIZE - 1] = '\0';

  ListDirty = TRUE;

  TRACEEXIT();
  return TRUE;
}
TYPE_GrData *LogoManager_GetLogoByChannel(int SvcType, int SvcNum, tLogoStyle LogoStyle, tLogoSize LogoSize, tLogoAspect LogoAR)
{
  TRACEENTER();

  ulong64                 ChannelID;
  tFlashService           ServiceInfo;
  TYPE_GrData            *GrData;

  LogoManager_Initialize(LogoManager_CB);

  if(!FlashServiceGetInfo(SvcType, SvcNum, &ServiceInfo))
  {
    TRACEEXIT();
    return NULL;
  }

  //First retrieve by the channel name
  GrData = LogoManager_GetLogoByChannelName(ServiceInfo.ServiceName, LogoStyle, LogoSize, LogoAR);
  if(GrData)
  {
    TRACEEXIT();
    return GrData;
  }

  //Logo not available via channel name, now try it via the ID
  ChannelID =  LogoManager_GetChannelID(SvcType, SvcNum);
  GrData = LogoManager_GetLogoByChannelID(ChannelID, LogoStyle, LogoSize, LogoAR);

  TRACEEXIT();
  return GrData;
}
Exemplo n.º 4
0
dword TryResolve(char *Function)
{
  TRACEENTER();

  void                *pvr;
  dword               *ret;

  pvr = dlopen(NULL, RTLD_GLOBAL | RTLD_LAZY);
  if(!pvr)
  {
    TRACEEXIT();
    return 0;
  }

  ret = dlsym(pvr, Function);
  if(dlerror() != NULL)
  {
    dlclose(pvr);

    TRACEEXIT();
    return 0;
  }

  dlclose(pvr);

  TRACEEXIT();
  return (dword)ret;
}
bool HDD_TAP_isDisabledAll(void)
{
  TRACEENTER();

  dword                 i;
  tTMSTAPTaskTable     *TMSTAPTaskTable;

  TMSTAPTaskTable = (tTMSTAPTaskTable*)FIS_vTAPTable();

  if(!TMSTAPTaskTable || (!LibInitialized && !InitTAPex()))
  {
    TRACEEXIT();
    return FALSE;
  }

  for(i = 0; i < TAP_MAX; i++)
  {
    if((i != TAP_TableIndex) && (TMSTAPTaskTable[i].Status == 1) && (TMSTAPTaskTable[i].unused5 == 0))
    {
      TRACEEXIT();
      return FALSE;
    }
  }

  TRACEEXIT();
  return TRUE;
}
Exemplo n.º 6
0
byte *strcpyUC(byte *dest, byte *src)
{
  TRACEENTER();

  byte                 *p;
  int                   CharTableBytes;

  if(!src || !dest)
  {
    TRACEEXIT();
    return NULL;
  }

  p = SkipCharTableBytes(src);
  CharTableBytes = p - src;

  if(CharTableBytes == 0)
    strcpy(dest, src);
  else
  {
    memcpy(dest, src, CharTableBytes);
    strcpy(&dest[CharTableBytes], p);
  }

  TRACEEXIT();
  return dest;
}
Exemplo n.º 7
0
bool FlashTimeGetInfo(tFlashTimeInfo *TimeInfo)
{
  TRACEENTER();

  bool ret;

  //TimeInfo is NULL
  if(!TimeInfo)
  {
    TRACEEXIT();
    return FALSE;
  }

  ret = FALSE;
  switch(GetSystemType())
  {
    //Unknown and old 5k/6k systems are not supported
    case ST_UNKNOWN:
    case ST_S:
    case ST_ST:
    case ST_T:
    case ST_C:
    case ST_CT:
    case ST_T5700:
    case ST_T5800:
    case ST_TF7k7HDPVR: break;

    case ST_TMSS:
    {
      tFlashTimeInfo   *p;

      p = (tFlashTimeInfo*)(FIS_vFlashBlockTimeInfo());
      if(p) ret = FlashTimeDecode(p, TimeInfo);
      break;
    }

    case ST_TMST:
    {
      tFlashTimeInfo   *p;

      p = (tFlashTimeInfo*)(FIS_vFlashBlockTimeInfo());
      if(p) ret = FlashTimeDecode(p, TimeInfo);
      break;
    }

    case ST_TMSC:
    {
      tFlashTimeInfo   *p;

      p = (tFlashTimeInfo*)(FIS_vFlashBlockTimeInfo());
      if(p) ret = FlashTimeDecode(p, TimeInfo);
      break;
    }

    case ST_NRTYPES: break;
  }

  TRACEEXIT();
  return ret;
}
Exemplo n.º 8
0
bool OSDMenuSelectTopItem(int TopIndex)
{
  TRACEENTER();

  tMenu                *pMenu;

  pMenu = &Menu[CurrentMenuLevel];

  if(pMenu->NrItems == 0)
  {
    TRACEEXIT();
    return FALSE;
  }

  if(TopIndex < 0) TopIndex = 0;
  if(TopIndex >= (int)pMenu->NrItems) TopIndex = (int)pMenu->NrItems - 1;

  if(TopIndex != (int)pMenu->CurrentTopIndex)
  {
    pMenu->CurrentTopIndex = TopIndex;
    ListDirty = TRUE;
  }

  TRACEEXIT();
  return TRUE;
}
Exemplo n.º 9
0
void OSDMenuButtonAdd(dword Line, tButtonIcon ButtonIcon, TYPE_GrData *ButtonGd, char *Text)
{
  TRACEENTER();

  tMenu                *pMenu;
  TYPE_GrData          *IconGd;

  IconGd = OSDMenuGetIconPointer(ButtonIcon, ButtonGd);
  if((Line == 0) || (Line > 3) || (!IconGd) || (!Text))
  {
    TRACEEXIT();
    return;
  }

  pMenu = &Menu[CurrentMenuLevel];
  pMenu->Buttons[pMenu->NrButtons].X = pMenu->ButtonXStart[Line];

  switch(Line)
  {
    case 1: pMenu->Buttons[pMenu->NrButtons].Y = 487; break;
    case 2: pMenu->Buttons[pMenu->NrButtons].Y = 511; break;
    case 3: pMenu->Buttons[pMenu->NrButtons].Y = 535; break;
  }
  pMenu->Buttons[pMenu->NrButtons].pButtonGd = IconGd;
  strncpy(pMenu->Buttons[pMenu->NrButtons].Text, Text, STDSTRINGSIZE);
  pMenu->Buttons[pMenu->NrButtons].Text[STDSTRINGSIZE - 1] = '\0';
  pMenu->Buttons[pMenu->NrButtons].Color = ButtonColor;
  pMenu->NrButtons++;

  ButtonsDirty = TRUE;

  pMenu->ButtonXStart[Line] = pMenu->ButtonXStart[Line] + IconGd->width + OSDMenuGetW(Text, 12) + 8;

  TRACEEXIT();
}
Exemplo n.º 10
0
bool HDD_GetRecSlotFiles(byte Slot, TYPE_File **RecFile, TYPE_File **InfFile, TYPE_File **NavFile)
{
  TRACEENTER();

  tHddRecordFile       *HddRecordFile;

  //Sanity check of the parameters
  HddRecordFile = (tHddRecordFile*)FIS_vhddRecordFile();

  if(Slot > HDD_NumberOfRECSlots() || !HddRecordFile)
  {
    if(RecFile) *RecFile = NULL;
    if(InfFile) *InfFile = NULL;
    if(NavFile) *NavFile = NULL;

    TRACEEXIT();
    return FALSE;
  }

  if(RecFile) *RecFile = HddRecordFile[Slot].RecFile;
  if(InfFile) *InfFile = HddRecordFile[Slot].InfFile;
  if(NavFile) *NavFile = HddRecordFile[Slot].NavFile;

  TRACEEXIT();
  return TRUE;
}
Exemplo n.º 11
0
bool StringDBInit(tStringDB *StringDB, dword InitialSize)
{
  TRACEENTER();

  bool ret;

  if(!StringDB)
  {
    TRACEEXIT();
    return FALSE;
  }

  StringDB->DBSize = InitialSize;
  if(InitialSize)
  {
    StringDB->DB = TAP_MemAlloc(InitialSize);
    if(StringDB->DB) TAP_MemSet(StringDB->DB, 0, InitialSize);
  }
  else
    StringDB->DB = NULL;

  StringDB->DBPtr = StringDB->DB;
  StringDB->DBEnd = StringDB->DB;
  ret = (StringDB->DB != NULL) || (InitialSize == 0);

  TRACEEXIT();
  return ret;
}
Exemplo n.º 12
0
bool VFD_SetSmallText(char *Text)
{
  TRACEENTER();

  dword                 i;

  byte *grid = (byte*)FIS_vGrid();

  if(!VFDUsedByTAP || !grid)
  {
    TRACEEXIT();
    return FALSE;
  }

  if(Text)
  {
    i = strlen(Text);

    if(i > 0) VFD_SetDisplayDigit(grid, Text[0], VFD_14, 0);
         else VFD_SetDisplayDigit(grid, ' ', VFD_14, 0);
    if(i > 1) VFD_SetDisplayDigit(grid, Text[1], VFD_14, 1);
         else VFD_SetDisplayDigit(grid, ' ', VFD_14, 1);
    if(i > 2) VFD_SetDisplayDigit(grid, Text[2], VFD_14, 2);
         else VFD_SetDisplayDigit(grid, ' ', VFD_14, 2);
    if(i > 3) VFD_SetDisplayDigit(grid, Text[3], VFD_14, 3);
         else VFD_SetDisplayDigit(grid, ' ', VFD_14, 3);
  }

  TRACEEXIT();
  return TRUE;
}
Exemplo n.º 13
0
byte *strncpyUC(byte *dest, byte *src, size_t n)
{
  TRACEENTER();

  byte                 *p;
  size_t                CharTableBytes;

  if(!src || !dest)
  {
    TRACEEXIT();
    return NULL;
  }

  p = SkipCharTableBytes(src);
  CharTableBytes = p - src;

  if(CharTableBytes == 0)
    strncpy(dest, src, n);
  else
  {
    memcpy(dest, src, CharTableBytes < n ? CharTableBytes : n);
    strncpy(&dest[CharTableBytes], p, n - CharTableBytes);
  }

  TRACEEXIT();
  return dest;
}
Exemplo n.º 14
0
bool VFD_SetCDValue(int Percent)
{
  TRACEENTER();

  byte *grid = (byte*)FIS_vGrid();

  if(!VFDUsedByTAP || !grid || !CDEnabled)
  {
    TRACEEXIT();
    return FALSE;
  }

  grid[25] &= 0xfe;
  grid[26]  = 0x00;
  grid[27] &= 0x1f;

  if(Percent >  7) grid[25] |= 0x01;
  if(Percent > 15) grid[26] |= 0x80;
  if(Percent > 23) grid[26] |= 0x40;
  if(Percent > 30) grid[26] |= 0x20;
  if(Percent > 38) grid[26] |= 0x10;
  if(Percent > 46) grid[26] |= 0x08;
  if(Percent > 53) grid[26] |= 0x04;
  if(Percent > 61) grid[26] |= 0x02;
  if(Percent > 69) grid[26] |= 0x01;
  if(Percent > 76) grid[27] |= 0x80;
  if(Percent > 84) grid[27] |= 0x40;
  if(Percent > 92) grid[27] |= 0x20;

  TRACEEXIT();
  return TRUE;
}
bool FlashSatTablesDecode_ST_TMSS(TYPE_SatInfo_TMSS *Data, tFlashSatTable *SatTable)
{
  TRACEENTER();

  if(!Data || !SatTable)
  {
    TRACEEXIT();
    return FALSE;
  }

  memset(SatTable, 0, sizeof(tFlashSatTable));
  SatTable->NrOfTransponders = Data->NrOfTransponders;
  SatTable->unused1          = Data->unused1;
  SatTable->SatPosition      = Data->SatPosition;
  memcpy(SatTable->unknown1,   Data->unknown1, 22);
  memcpy(SatTable->unused2,    Data->unused2, 8);
  strncpy(SatTable->SatName,   Data->SatName, MAX_SatName - 1);

  //LNB 1
  SatTable->LNB[0].LNBSupply    = Data->LNB[0].LNBSupply;
  SatTable->LNB[0].unused1      = Data->LNB[0].unused1;
  SatTable->LNB[0].DiSEqC10     = Data->LNB[0].DiSEqC10;
  SatTable->LNB[0].unused2      = Data->LNB[0].unused2;
  SatTable->LNB[0].DiSEqC12     = Data->LNB[0].DiSEqC12;
  SatTable->LNB[0].UniversalLNB = Data->LNB[0].UniversalLNB;
  SatTable->LNB[0].Switch22     = Data->LNB[0].Switch22;
  SatTable->LNB[0].LowBand      = Data->LNB[0].LowBand;
  SatTable->LNB[0].HBFrq        = Data->LNB[0].HBFrq;
  SatTable->LNB[0].unused3      = Data->LNB[0].unused3;
  SatTable->LNB[0].LoopThrough  = Data->LNB[0].LoopThrough;
  SatTable->LNB[0].unused4      = Data->LNB[0].unused4;
  SatTable->LNB[0].DiSEqC11     = Data->LNB[0].DiSEqC11;
  memcpy(SatTable->LNB[0].DiSEqC12Flags, Data->LNB[0].DiSEqC12Flags, 3);
  memcpy(SatTable->LNB[0].unused5, Data->LNB[0].unused5, 5);

  //LNB 2
  SatTable->LNB[1].LNBSupply    = Data->LNB[1].LNBSupply;
  SatTable->LNB[1].unused1      = Data->LNB[1].unused1;
  SatTable->LNB[1].DiSEqC10     = Data->LNB[1].DiSEqC10;
  SatTable->LNB[1].unused2      = Data->LNB[1].unused2;
  SatTable->LNB[1].DiSEqC12     = Data->LNB[1].DiSEqC12;
  SatTable->LNB[1].UniversalLNB = Data->LNB[1].UniversalLNB;
  SatTable->LNB[1].Switch22     = Data->LNB[1].Switch22;
  SatTable->LNB[1].LowBand      = Data->LNB[1].LowBand;
  SatTable->LNB[1].HBFrq        = Data->LNB[1].HBFrq;
  SatTable->LNB[1].unused3      = Data->LNB[1].unused3;
  SatTable->LNB[1].LoopThrough  = Data->LNB[1].LoopThrough;
  SatTable->LNB[1].unused4      = Data->LNB[1].unused4;
  SatTable->LNB[1].DiSEqC11     = Data->LNB[1].DiSEqC11;
  memcpy(SatTable->LNB[1].DiSEqC12Flags, Data->LNB[1].DiSEqC12Flags, 3);
  memcpy(SatTable->LNB[1].unused5, Data->LNB[1].unused5, 5);

  TRACEEXIT();
  return TRUE;
}
Exemplo n.º 16
0
bool EPGInfo_CreateCache(int NrRecords)
{
  TRACEENTER();

  extern dword __tap_ud__;

  TAP_SPrint(EPGCacheFile, "/mnt/hd/tmp/EPGCache_%x.bin", __tap_ud__);

  if(EPGInfoCacheFile) EPGInfo_DestroyCache();

  EPGInfoCacheSize = NrRecords * sizeof(TYPE_EPGInfo);

  //Delete the old cache
  unlink(EPGCacheFile);

  mkdir("/mnt/hd/tmp", 0777);
  EPGInfoCacheFile = open(EPGCacheFile, O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600);

  if(EPGInfoCacheFile == -1)
  {
    LogEntryFBLibPrintf(TRUE, "EPGInfo: failed to create the memory mapped EPG cache");

    TRACEEXIT();
    return FALSE;
  }

  //Increase the size of the cache as needed
  if(lseek(EPGInfoCacheFile, EPGInfoCacheSize, SEEK_SET) == -1)
  {
    LogEntryFBLibPrintf(TRUE, "EPGInfo: failed to stretch the memory mapped EPG cache");
    close(EPGInfoCacheFile);
    unlink(EPGCacheFile);

    TRACEEXIT();
    return FALSE;
  }
  write(EPGInfoCacheFile, "", 1);

  //Map the memory
  EPGInfoCacheMap = mmap(0, EPGInfoCacheSize, PROT_READ | PROT_WRITE, MAP_SHARED, EPGInfoCacheFile, 0);
  if(EPGInfoCacheMap == MAP_FAILED)
  {
    LogEntryFBLibPrintf(TRUE, "EPGInfo: failed to memory map the EPG cache file");
    close(EPGInfoCacheFile);
    unlink(EPGCacheFile);

    TRACEEXIT();
    return FALSE;
  }

  EPGInfoCache = (TYPE_EPGInfo*)EPGInfoCacheMap;

  TRACEEXIT();
  return TRUE;
}
Exemplo n.º 17
0
bool StringDBLoad(tStringDB *StringDB, char *FileName)
{
  TRACEENTER();

  int                   f;
  bool                  ret;
  dword                 l, p;
  char                  AbsFileName[FBLIB_DIR_SIZE];

  if(!StringDB || !StringDB->DB || !FileName || !*FileName)
  {
    TRACEEXIT();
    return FALSE;
  }

  ConvertPathType(FileName, AbsFileName, PF_FullLinuxPath);

  ret = FALSE;
  if(*AbsFileName)
  {
    f = open(AbsFileName, O_RDONLY);
    if(f >= 0)
    {
      TAP_MemFree(StringDB->DB);

      //DB Size
      read(f, &l, sizeof(dword));
      StringDB->DB = TAP_MemAlloc(l);

      if(!StringDB->DB)
      {
        StringDB->DBSize = 0;
        close(f);

        TRACEEXIT();
        return FALSE;
      }
      StringDB->DBSize = l;
      StringDB->DBEnd = l + StringDB->DB - 1;

      //Current pointer
      read(f, &p, sizeof(dword));
      StringDB->DBPtr = p + StringDB->DB;

      read(f, StringDB->DB, l);

      close(f);

      ret = TRUE;
    }
  }

  TRACEEXIT();
  return ret;
}
Exemplo n.º 18
0
dword KeyTranslateHook(word event, dword param1, dword param2)
{
  TRACEENTER();

  dword                 KeyFlags, NativeKeyCode, TranslatedKeyCode;
  dword                 ret;
  dword                 SysID;

  if(event == EVT_KEY)
  {
    KeyFlags =      param1 & 0xfffe0000;
    NativeKeyCode = param1 & 0x0001ffff;
    TranslatedKeyCode = NativeKeyCode;

    //Nothing to do for RT_5000 and RT_2100
    SysID = GetSysID();
    if(RemoteType == RT_7100PLUS)
    {
      switch(NativeKeyCode)
      {
        case RKEY_Ab:       TranslatedKeyCode = 0x10049;        break;
        case RKEY_Bookmark: TranslatedKeyCode = RKEY_VolDown;   break;
        case RKEY_Goto:     TranslatedKeyCode = RKEY_ChUp;      break;
        case RKEY_Check:    TranslatedKeyCode = RKEY_ChDown;    break;
        case RKEY_NewF1:    TranslatedKeyCode = RKEY_VolUp;     break;
        case RKEY_ChUp:     TranslatedKeyCode = RKEY_VFormat;   break;
        case RKEY_VolUp:    TranslatedKeyCode = RKEY_NewF1;     break;
        case RKEY_VolDown:  TranslatedKeyCode = RKEY_Bookmark;  break;
        case 0x10049:       TranslatedKeyCode = RKEY_Goto;      break;
        case 0x1004a:       TranslatedKeyCode = RKEY_Check;     break;
      }
    }

    if(RemoteType == RT_7260PLUS)
    {
      switch(NativeKeyCode)
      {
        case RKEY_F1:       TranslatedKeyCode = RKEY_NewF1;     break;
      }
    }

    ret = Original_TAP_EventHandler(EVT_KEY, TranslatedKeyCode | KeyFlags, param2);

    TRACEEXIT();
    return (ret ? NativeKeyCode | KeyFlags : 0);
  }

  ret = Original_TAP_EventHandler(event, param1, param2);

  TRACEEXIT();
  return ret;
}
Exemplo n.º 19
0
void DumpMemoryDword(dword *p, dword size)
{
  TRACEENTER();

  dword                *StartAddress = p;
  int                   CollectedBytes;
  char                  Header[20];
  char                  s[255];
  int                   Remaining;

  if(!p)
  {
    TAP_Print("0x00000000 NULL\n");

    TRACEEXIT();
    return;
  }

  s[0] = '\0';
  CollectedBytes = 0;

  TAP_SPrint(Header, "%p 0x%4.4x: ", p, (dword)p - (dword)StartAddress);

  Remaining = size;
  while(Remaining > 0)
  {
    TAP_SPrint(&s[strlen(s)], "%8.8x ", *p);

    CollectedBytes += 4;
    p++;
    Remaining -= 4;

    if(CollectedBytes >= 16)
    {
      strcat(s, "\n");
      TAP_Print(Header);
      TAP_Print(s);
      s[0] = '\0';
      TAP_SPrint(Header, "%p 0x%4.4x: ", p, (dword)p - (dword)StartAddress);
      CollectedBytes = 0;
    }
  }

  if(strlen(s))
  {
    strcat(s, "\n");
    TAP_Print(Header);
    TAP_Print(s);
  }

  TRACEEXIT();
}
dword HDD_TAP_GetIDByFileName(char *TAPFileName)
{
  TRACEENTER();

  tTAPInfo              pTAPInfo;

  if(HDD_TAP_GetInfo(TAPFileName, &pTAPInfo))
  {
    TRACEEXIT();
    return pTAPInfo.TAPID;
  }

  TRACEEXIT();
  return 0;
}
char *LangGetStringDefault(dword StringID, char *DefaultString)
{
  TRACEENTER();

  char *ret = LangGetString(StringID);

  if((ret[0] == '\0') && DefaultString)
  {
    TRACEEXIT();
    return DefaultString;
  }

  TRACEEXIT();
  return ret;
}
Exemplo n.º 22
0
dword SuperFastHash(register unsigned char * data, int len, dword hash)
{
  TRACEENTER();

  register dword tmp, tmp2;
  int rem;

  if(len <= 0 || data == NULL)
  {
    TRACEEXIT();
    return 0;
  }

  rem = len & 3;
  len >>= 2;

  /* Main loop */
  while(len>0)
  {
    tmp    = get16bits(data);
    data  += 2;
    tmp2   = get16bits(data);
    data  += 2;
    if(tmp || tmp2)
    {
      hash  += tmp;
      tmp2 <<= 11;
      tmp2  ^= hash;
      hash <<= 16;
      hash  ^= tmp2;
      hash  += hash >> 11;
    }
    len -= 4;
  }
Exemplo n.º 23
0
char *GetRecExtension(void)
{
  TRACEENTER();

  dword                 i;
  tToppyInfo           *ToppyInfo;
  tFWDATHeader         *FWDatHeader;
  static char          *RecExtension = NULL;

  if(RecExtension == NULL)
  {
    if(LoadFirmwareDat(&FWDatHeader, &ToppyInfo, NULL))
    {
      for(i = 0; i < FWDatHeader->NrOfToppyInfoEntries; i++, ToppyInfo++)
      {
        if(ToppyInfo->SysID == TAP_GetSystemId())
        {
          switch(ToppyInfo->RecExtension)
          {
            case 0: RecExtension = ".rec"; break;
            case 1: RecExtension = ".mpg"; break;
              default:
                break;
          }
          break;
        }
      }
    }
  }

  TRACEEXIT();
  return RecExtension ? RecExtension : ".rec";
}
Exemplo n.º 24
0
bool StringDBEOF(tStringDB *StringDB)
{
  TRACEENTER();

  bool ret;

  if(!StringDB)
  {
    TRACEEXIT();
    return TRUE;
  }
  ret = (StringDB->DBPtr[0] == '\0');

  TRACEEXIT();
  return ret;
}
Exemplo n.º 25
0
bool GetPIPPosition(int *North, int *South, int *East, int *West)
{
  TRACEENTER();

  byte                 *_isPipActive;
  word                 *_pipX, *_pipY, *_pipW, *_pipH;

  _isPipActive = (byte*)FIS_vIsPipActive();
  _pipX = (word*)FIS_vPipX();
  _pipY = (word*)FIS_vPipY();
  _pipW = (word*)FIS_vPipW();
  _pipH = (word*)FIS_vPipH();

  if(_isPipActive)
  {
    if(*_isPipActive)
    {
      if(West)  *West  = *_pipX;
      if(East)  *East  = *_pipX + *_pipW;
      if(North) *North = *_pipY;
      if(South) *South = *_pipY + *_pipH;
    }
    else
    {
      if(West)  *West  = 0;
      if(East)  *East  = 0;
      if(North) *North = 0;
      if(South) *South = 0;
    }
  }

  TRACEEXIT();
  return (_isPipActive != 0);
}
void OSDMenuMessageBoxDestroyNoOSDUpdate(void)
{
  TRACEENTER();

  tOSDMapInfo          *OSDMapInfo;

  if(MessageBoxOSDRgn)
  {
    TAP_Osd_Delete(MessageBoxOSDRgn);
    MessageBoxOSDRgn = 0;

    if(InfoBoxSaveArea)
    {
      if(MyOSDRgn)
      {
        OSDMapInfo = (tOSDMapInfo*) FIS_vOsdMap();
        if(OSDMapInfo)
          TAP_Osd_RestoreBox(MyOSDRgn, InfoBoxSaveAreaX - OSDMapInfo[MyOSDRgn].x, InfoBoxSaveAreaY - OSDMapInfo[MyOSDRgn].y, _InfoBox_Gd.width, _InfoBox_Gd.height, InfoBoxSaveArea);
      }
      else if(OSDRgn) TAP_Osd_RestoreBox(OSDRgn, InfoBoxSaveAreaX, InfoBoxSaveAreaY, _InfoBox_Gd.width, _InfoBox_Gd.height, InfoBoxSaveArea);

      TAP_MemFree(InfoBoxSaveArea);
      InfoBoxSaveArea = NULL;
      MyOSDRgn = 0;
    }
  }

  OSDMenuFreeStdFonts();

  TRACEEXIT();
}
Exemplo n.º 27
0
// Return codes: 0..15 = Position in the TAP table
//                  -1 = TAPID not found
//
int HDD_TAP_GetIndexByID(dword TAPID)
{
  TRACEENTER();

  int                   i;

  for(i = 0; i < TAP_MAX; i++)
    if(HDD_TAP_GetIDByIndex(i) == TAPID)
    {
      TRACEEXIT();
      return i;
    }

  TRACEEXIT();
  return -1;
}
char *LogoManager_ChannelNameToLogoName(char *ChannelName, char *LogoName, int LogoNameSize)
{
  TRACEENTER();

  char                 *pLogoName;
  char                  AllowedChars[] = "abcdefghijklmnoprqstuvwxyz0123456789הצ�+";

  if(LogoName && LogoNameSize)
  {
    memset(LogoName, 0, LogoNameSize);
    strncpy(LogoName, SkipCharTableBytes(ChannelName), LogoNameSize - 1);
    StrMkISO(LogoName);
    MakeValidFileName(LogoName, ControlChars | LFChars);
    LowerCase(LogoName);

    pLogoName = LogoName;
    while(*pLogoName)
    {
      if(index(AllowedChars, *pLogoName) == NULL)
        DeleteAt(pLogoName, 0, 1);
      else
        pLogoName++;
    }
    StrReplace(LogoName, "ה", "ae");
    StrReplace(LogoName, "צ", "oe");
    StrReplace(LogoName, "�", "ue");
  }

  TRACEEXIT();
  return LogoName;
}
char *LogoManager_GetDirectory(tLogoStyle LogoStyle, tLogoAspect LogoAR, char *LogoPath)
{
  TRACEENTER();

  if(LogoPath)
  {
    strcpy(LogoPath, LOGOROOT);
    switch(LogoStyle)
    {
      case LGST_3pgstyle:     strcat(LogoPath, "/3pg/"); break;
      case LGST_QtstyleBlue:  strcat(LogoPath, "/qtblue/"); break;
      case LGST_QtstyleGrey:  strcat(LogoPath, "/qtgrey/"); break;
      case LGST_QtstyleTMS:   strcat(LogoPath, "/qttms/"); break;
      case LGST_TransBlack:   strcat(LogoPath, "/trans-black/"); break;
      case LGST_TransIBBlue:  strcat(LogoPath, "/trans-ibblue/"); break;
      case LGST_TransIBGrey:  strcat(LogoPath, "/trans-ibgrey/"); break;
      case LGST_TransQTBlue:  strcat(LogoPath, "/trans-qtblue/"); break;
      case LGST_TransQTGrey:  strcat(LogoPath, "/trans-qtgrey/"); break;
      default:
        break;
    }

    switch(LogoAR)
    {
      case LGAR_43:  strcat(LogoPath, "43"); break;
      case LGAR_169: strcat(LogoPath, "169"); break;
      default:
        break;
    }
  }

  TRACEEXIT();
  return LogoPath;
}
bool LogoManager_LogosAvailable(tLogoStyle LogoStyle)
{
  TRACEENTER();

  int                   i;

  for(i = 0; i < LogoManager_NrLogos; i++)
    if(LogoManager_LogoData[i].Style  == LogoStyle)
    {
      TRACEEXIT();
      return TRUE;
    }

  TRACEEXIT();
  return FALSE;
}