Exemple #1
0
int main(void)
{
    int offset, matches;
    char *filePath = "source.sub";
    char *destPath = "fixed.sub";
    
    printf("offset --> ");
    matches = scanf("%d", &offset);
    check_input(matches);
    
    FILE *file = fopen(filePath, "r");
    FILE *dest = fopen(destPath, "w");
    
    if (NULL == dest || NULL == file) 
    {
        kill(NULL);
    }
    
    char buffer[BUFFER_SIZE];
    char *timeEnd;
    char *timeStart;
    
    while ((0 == feof(file)) && (0 == ferror(file)) && (0 == ferror(dest)))
    {
        size_t readBytes = fread(buffer, 1, BUFFER_SIZE, file);
        char *substr;
        substr = strstr(buffer, "-->");
        while (NULL != substr)
        {
            int check = check_buffer(buffer, substr, readBytes);
            
            if (1 == check) 
            {
                timeEnd = substr + OFFSET_TO_ENDTIME;
                timeStart = substr - TIME_SIZE -1;
                char startTime[TIME_SIZE + 1];
                strncpy(startTime, timeStart, TIME_SIZE);
                startTime[TIME_SIZE] = '\0';
                char endTime[TIME_SIZE +1];
                strncpy(endTime, timeEnd, TIME_SIZE);
                endTime[TIME_SIZE] = '\0';

                change_time(startTime, offset);
                strncpy(timeStart, startTime, TIME_SIZE);
                change_time(endTime, offset);
                strncpy(timeEnd, endTime, TIME_SIZE);
            } 
            
            substr = strstr(timeEnd, "-->");
        }
        
        fwrite(buffer, 1, readBytes, dest);
    }
    
    fclose(file);
    fclose(dest);

    return 0;
}
// ---------------------------------------------------------------------------
// CWlanBgScan::AutoIntervalChangeAt
// ---------------------------------------------------------------------------
//
TTime CWlanBgScan::AutoIntervalChangeAt()
    {
    TTime currentTime;
    currentTime.HomeTime();
    TDateTime change_time( currentTime.DateTime() );
    
#ifdef _DEBUG
    change_time = currentTime.DateTime();
    TBuf<KWlanBgScanMaxDateTimeStrLen> timeNow;
    TRAP_IGNORE( currentTime.FormatL( timeNow, KWlanBgScanDateTimeFormat ) );
    DEBUG1( "CWlanBgScan::AutoIntervalChangeAt() - time now: %S", &timeNow );
#endif
    
    switch( TimeRelationToRange( currentTime, iBgScanSettings.bgScanPeakStartTime, iBgScanSettings.bgScanPeakEndTime ) )
        {
        case ESmaller:
            {
            change_time.SetHour( iBgScanSettings.bgScanPeakStartTime / KGetHours );
            change_time.SetMinute( iBgScanSettings.bgScanPeakStartTime % KGetHours );
            change_time.SetSecond( KZeroSeconds );
            currentTime = change_time;
            break;
            }
        case EInsideRange:
            {
            change_time.SetHour( iBgScanSettings.bgScanPeakEndTime / KGetHours );
            change_time.SetMinute( iBgScanSettings.bgScanPeakEndTime % KGetHours );
            change_time.SetSecond( KZeroSeconds );
            currentTime = change_time;
            if( iBgScanSettings.bgScanPeakStartTime > iBgScanSettings.bgScanPeakEndTime )
                {
                DEBUG( "CWlanBgScan::AutoIntervalChangeAt() - peak end happens tomorrow" );
                currentTime += TTimeIntervalDays( KAddOneDay );
                }
            else
                {
                DEBUG( "CWlanBgScan::AutoIntervalChangeAt() - peak end happens today" );
                }
            break;
            }
        case EGreater:
            {
            change_time.SetHour( iBgScanSettings.bgScanPeakStartTime / KGetHours );
            change_time.SetMinute( iBgScanSettings.bgScanPeakEndTime % KGetHours );
            change_time.SetSecond( KZeroSeconds );
            currentTime = change_time;
            currentTime += TTimeIntervalDays( KAddOneDay );
            break;
            }
        }
    
#ifdef _DEBUG
    change_time = currentTime.DateTime();
    TBuf<KWlanBgScanMaxDateTimeStrLen> dbgString;
    TRAP_IGNORE( currentTime.FormatL( dbgString, KWlanBgScanDateTimeFormat ) );
    DEBUG1( "CWlanBgScan::AutoIntervalChangeAt() - interval change to occur: %S", &dbgString );
#endif
    
    return currentTime;
    }
static gboolean
am_pm_button_clicked (GtkWidget *button,
                      CcDateTimePanel *self)
{
  CcDateTimePanelPrivate *priv = self->priv;
  GtkWidget *visible_child;

  visible_child = gtk_stack_get_visible_child (GTK_STACK (priv->am_pm_stack));
  if (visible_child == priv->am_label)
    gtk_stack_set_visible_child (GTK_STACK (priv->am_pm_stack), priv->pm_label);
  else
    gtk_stack_set_visible_child (GTK_STACK (priv->am_pm_stack), priv->am_label);

  change_time (self);

  return TRUE;
}
void ui_control_menu(){
	
	char key = 0;
	
	sprintf_P(lcd_buf_l1, PSTR("Control menu:"));
	sprintf_P(lcd_buf_l2, PSTR("1=Addr, 2=Clock, 0=Cancel"));
	lcd_write_buffer(lcd_buf_l1, lcd_buf_l2);
	
    key = keypad_get_input();
	
	if(key == '1'){
        //Support only IP changing for now
        change_addr_ip();
        //change_addr();
        return;
	}
    
    if(key == '2'){
        change_time();
        return;
    }
}