[svn] / trunk / vfw / src / config.c Repository:
ViewVC logotype

Diff of /trunk/vfw/src/config.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 102, Fri Apr 5 14:42:37 2002 UTC revision 121, Mon Apr 15 08:03:50 2002 UTC
# Line 23  Line 23 
23   *   *
24   *      History:   *      History:
25   *   *
26     *      15.04.2002      updated cbr support
27     *      07.04.2002      min keyframe interval checkbox
28     *                              2-pass max bitrate and overflow customization
29   *      04.04.2002      interlacing support   *      04.04.2002      interlacing support
30   *                              hinted ME support   *                              hinted ME support
31   *      24.03.2002      daniel smith <danielsmith@astroboymail.com>   *      24.03.2002      daniel smith <danielsmith@astroboymail.com>
# Line 66  Line 69 
69    
70  REG_INT const reg_ints[] = {  REG_INT const reg_ints[] = {
71          {"mode",                                        &reg.mode,                                              DLG_MODE_CBR},          {"mode",                                        &reg.mode,                                              DLG_MODE_CBR},
         {"bitrate",                                     &reg.bitrate,                                   900000},  
72          {"quality",                                     &reg.quality,                                   85},          {"quality",                                     &reg.quality,                                   85},
73          {"quant",                                       &reg.quant,                                             5},          {"quant",                                       &reg.quant,                                             5},
74          {"rc_buffersize",                       &reg.rc_buffersize,                             16},          {"rc_bitrate",                          &reg.rc_bitrate,                                900000},
75            {"rc_reaction_delay_factor",&reg.rc_reaction_delay_factor,      16},
76            {"rc_averaging_period",         &reg.rc_averaging_period,               100},
77            {"rc_buffer",                           &reg.rc_buffer,                                 100},
78    
79          {"motion_search",                       &reg.motion_search,                             5},          {"motion_search",                       &reg.motion_search,                             5},
80          {"quant_type",                          &reg.quant_type,                                0},          {"quant_type",                          &reg.quant_type,                                0},
81          {"fourcc_used",                         &reg.fourcc_used,                               0},          {"fourcc_used",                         &reg.fourcc_used,                               0},
82          {"max_key_interval",            &reg.max_key_interval,                  300},          {"max_key_interval",            &reg.max_key_interval,                  300},
83            {"min_key_interval",            &reg.min_key_interval,                  1},
84          {"lum_masking",                         &reg.lum_masking,                               0},          {"lum_masking",                         &reg.lum_masking,                               0},
85          {"interlacing",                         &reg.interlacing,                               0},          {"interlacing",                         &reg.interlacing,                               0},
86    
# Line 85  Line 91 
91    
92          {"desired_size",                        &reg.desired_size,                              570000},          {"desired_size",                        &reg.desired_size,                              570000},
93          {"keyframe_boost",                      &reg.keyframe_boost,                    20},          {"keyframe_boost",                      &reg.keyframe_boost,                    20},
         {"min_key_interval",            &reg.min_key_interval,                  6},  
94          {"discard1pass",                        &reg.discard1pass,                              1},          {"discard1pass",                        &reg.discard1pass,                              1},
95          {"dummy2pass",                          &reg.dummy2pass,                                0},          {"dummy2pass",                          &reg.dummy2pass,                                0},
96          {"curve_compression_high",      &reg.curve_compression_high,    25},          {"curve_compression_high",      &reg.curve_compression_high,    25},
# Line 101  Line 106 
106          {"alt_curve_min_rel_qual",      &reg.alt_curve_min_rel_qual,    50},          {"alt_curve_min_rel_qual",      &reg.alt_curve_min_rel_qual,    50},
107          {"bitrate_payback_delay",       &reg.bitrate_payback_delay,             240},          {"bitrate_payback_delay",       &reg.bitrate_payback_delay,             240},
108          {"bitrate_payback_method",      &reg.bitrate_payback_method,    0},          {"bitrate_payback_method",      &reg.bitrate_payback_method,    0},
109            {"twopass_max_bitrate",         &reg.twopass_max_bitrate,               10000 * CONFIG_KBPS},
110            {"twopass_max_overflow_improvement", &reg.twopass_max_overflow_improvement, 60},
111            {"twopass_max_overflow_degradation", &reg.twopass_max_overflow_degradation, 60},
112          {"hinted_me",                           &reg.hinted_me,                                 0},          {"hinted_me",                           &reg.hinted_me,                                 0},
113    
114          {"credits_start",                       &reg.credits_start,                             0},          {"credits_start",                       &reg.credits_start,                             0},
# Line 283  Line 291 
291          {          {
292          default :          default :
293          case DLG_MODE_CBR :          case DLG_MODE_CBR :
294                  config->bitrate = config_get_int(hDlg, IDC_VALUE, config->bitrate) * CONFIG_KBPS;                  config->rc_bitrate = config_get_int(hDlg, IDC_VALUE, config->rc_bitrate) * CONFIG_KBPS;
295                  break;                  break;
296    
297          case DLG_MODE_VBR_QUAL :          case DLG_MODE_VBR_QUAL :
# Line 300  Line 308 
308          }          }
309    
310          config->mode = SendDlgItemMessage(hDlg, IDC_MODE, CB_GETCURSEL, 0, 0);          config->mode = SendDlgItemMessage(hDlg, IDC_MODE, CB_GETCURSEL, 0, 0);
         config->rc_buffersize = config_get_int(hDlg, IDC_CBRBUFFER, config->rc_buffersize);  
311  }  }
312    
313    
# Line 319  Line 326 
326    
327          case DLG_MODE_CBR :          case DLG_MODE_CBR :
328                  text = "Bitrate (Kbps):";                  text = "Bitrate (Kbps):";
329                  value = config->bitrate / CONFIG_KBPS;                  value = config->rc_bitrate / CONFIG_KBPS;
330                  break;                  break;
331    
332          case DLG_MODE_VBR_QUAL :          case DLG_MODE_VBR_QUAL :
# Line 343  Line 350 
350    
351          EnableWindow(GetDlgItem(hDlg, IDC_VALUE_STATIC), enabled);          EnableWindow(GetDlgItem(hDlg, IDC_VALUE_STATIC), enabled);
352          EnableWindow(GetDlgItem(hDlg, IDC_VALUE), enabled);          EnableWindow(GetDlgItem(hDlg, IDC_VALUE), enabled);
         EnableWindow(GetDlgItem(hDlg, IDC_CBRBUFFER_STATIC), (config->mode == DLG_MODE_CBR));  
         EnableWindow(GetDlgItem(hDlg, IDC_CBRBUFFER), (config->mode == DLG_MODE_CBR));  
353  }  }
354    
355    
# Line 365  Line 370 
370          case DLG_MODE_CBR :          case DLG_MODE_CBR :
371                  text = "Bitrate (Kbps):";                  text = "Bitrate (Kbps):";
372                  range = MAKELONG(0,10000);                  range = MAKELONG(0,10000);
373                  pos = config->bitrate / CONFIG_KBPS;                  pos = config->rc_bitrate / CONFIG_KBPS;
374                  break;                  break;
375    
376          case DLG_MODE_VBR_QUAL :          case DLG_MODE_VBR_QUAL :
# Line 453  Line 458 
458  {  {
459          // create arrays of controls to be disabled for each mode          // create arrays of controls to be disabled for each mode
460          const int cbr_disable[] = {          const int cbr_disable[] = {
461                  IDC_KFBOOST, IDC_MINKEY, IDC_DISCARD1PASS, IDC_DUMMY2PASS,                  IDC_KFBOOST, IDC_DISCARD1PASS, IDC_DUMMY2PASS,
462                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,
463                  IDC_STATS1, IDC_STATS1_BROWSE, IDC_STATS2, IDC_STATS2_BROWSE,                  IDC_STATS1, IDC_STATS1_BROWSE, IDC_STATS2, IDC_STATS2_BROWSE,
464                  IDC_CREDITS_START, IDC_CREDITS_END, IDC_CREDITS_START_BEGIN, IDC_CREDITS_START_END,                  IDC_CREDITS_START, IDC_CREDITS_END, IDC_CREDITS_START_BEGIN, IDC_CREDITS_START_END,
# Line 464  Line 469 
469          };          };
470    
471          const int qual_disable[] = {          const int qual_disable[] = {
472                  IDC_KFBOOST, IDC_MINKEY, IDC_DISCARD1PASS, IDC_DUMMY2PASS,                  IDC_CBR_REACTIONDELAY, IDC_CBR_AVERAGINGPERIOD, IDC_CBR_BUFFER,
473                    IDC_KFBOOST, IDC_DISCARD1PASS, IDC_DUMMY2PASS,
474                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,
475                  IDC_STATS1, IDC_STATS1_BROWSE, IDC_STATS2, IDC_STATS2_BROWSE,                  IDC_STATS1, IDC_STATS1_BROWSE, IDC_STATS2, IDC_STATS2_BROWSE,
476                  IDC_CREDITS_SIZE_RADIO, IDC_CREDITS_END_STATIC, IDC_CREDITS_START_SIZE, IDC_CREDITS_END_SIZE                  IDC_CREDITS_SIZE_RADIO, IDC_CREDITS_END_STATIC, IDC_CREDITS_START_SIZE, IDC_CREDITS_END_SIZE
477          };          };
478    
479          const int quant_disable[] = {          const int quant_disable[] = {
480                    IDC_CBR_REACTIONDELAY, IDC_CBR_AVERAGINGPERIOD, IDC_CBR_BUFFER,
481                  IDC_MINIQUANT, IDC_MAXIQUANT, IDC_MINPQUANT, IDC_MAXPQUANT,                  IDC_MINIQUANT, IDC_MAXIQUANT, IDC_MINPQUANT, IDC_MAXPQUANT,
482                  IDC_KFBOOST, IDC_MINKEY, IDC_DISCARD1PASS, IDC_DUMMY2PASS,                  IDC_KFBOOST, IDC_DISCARD1PASS, IDC_DUMMY2PASS,
483                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,
484                  IDC_STATS1, IDC_STATS1_BROWSE, IDC_STATS2, IDC_STATS2_BROWSE,                  IDC_STATS1, IDC_STATS1_BROWSE, IDC_STATS2, IDC_STATS2_BROWSE,
485                  IDC_CREDITS_SIZE_RADIO, IDC_CREDITS_END_STATIC, IDC_CREDITS_START_SIZE, IDC_CREDITS_END_SIZE                  IDC_CREDITS_SIZE_RADIO, IDC_CREDITS_END_STATIC, IDC_CREDITS_START_SIZE, IDC_CREDITS_END_SIZE
486          };          };
487    
488          const int twopass1_disable[] = {          const int twopass1_disable[] = {
489                    IDC_CBR_REACTIONDELAY, IDC_CBR_AVERAGINGPERIOD, IDC_CBR_BUFFER,
490                  IDC_LUMMASK, IDC_MINIQUANT, IDC_MAXIQUANT, IDC_MINPQUANT, IDC_MAXPQUANT,                  IDC_LUMMASK, IDC_MINIQUANT, IDC_MAXIQUANT, IDC_MINPQUANT, IDC_MAXPQUANT,
491                  IDC_KFBOOST, IDC_DUMMY2PASS,                  IDC_KFBOOST, IDC_DUMMY2PASS,
492                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,                  IDC_CURVECOMPH, IDC_CURVECOMPL, IDC_PAYBACK, IDC_PAYBACKBIAS, IDC_PAYBACKPROP,
# Line 488  Line 496 
496          };          };
497    
498          const int twopass2_ext_disable[] = {          const int twopass2_ext_disable[] = {
499                    IDC_CBR_REACTIONDELAY, IDC_CBR_AVERAGINGPERIOD, IDC_CBR_BUFFER,
500                  IDC_CREDITS_RATE_RADIO, IDC_CREDITS_QUANT_RADIO, IDC_CREDITS_QUANT_STATIC,                  IDC_CREDITS_RATE_RADIO, IDC_CREDITS_QUANT_RADIO, IDC_CREDITS_QUANT_STATIC,
501                  IDC_CREDITS_SIZE_RADIO, IDC_CREDITS_END_STATIC, IDC_CREDITS_RATE,                  IDC_CREDITS_SIZE_RADIO, IDC_CREDITS_END_STATIC, IDC_CREDITS_RATE,
502                  IDC_CREDITS_QUANTI, IDC_CREDITS_QUANTP, IDC_CREDITS_START_SIZE, IDC_CREDITS_END_SIZE                  IDC_CREDITS_QUANTI, IDC_CREDITS_QUANTP, IDC_CREDITS_START_SIZE, IDC_CREDITS_END_SIZE
503          };          };
504    
505          const int twopass2_int_disable[] = {          const int twopass2_int_disable[] = {
506                    IDC_CBR_REACTIONDELAY, IDC_CBR_AVERAGINGPERIOD, IDC_CBR_BUFFER,
507                  IDC_STATS2, IDC_STATS2_BROWSE                  IDC_STATS2, IDC_STATS2_BROWSE
508          };          };
509    
# Line 563  Line 573 
573                  SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_SETCURSEL, config->quant_type, 0);                  SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_SETCURSEL, config->quant_type, 0);
574                  SendDlgItemMessage(hDlg, IDC_FOURCC, CB_SETCURSEL, config->fourcc_used, 0);                  SendDlgItemMessage(hDlg, IDC_FOURCC, CB_SETCURSEL, config->fourcc_used, 0);
575                  SetDlgItemInt(hDlg, IDC_MAXKEY, config->max_key_interval, FALSE);                  SetDlgItemInt(hDlg, IDC_MAXKEY, config->max_key_interval, FALSE);
576                    SetDlgItemInt(hDlg, IDC_MINKEY, config->min_key_interval, FALSE);
577                  CheckDlgButton(hDlg, IDC_LUMMASK, config->lum_masking ? BST_CHECKED : BST_UNCHECKED);                  CheckDlgButton(hDlg, IDC_LUMMASK, config->lum_masking ? BST_CHECKED : BST_UNCHECKED);
578                  CheckDlgButton(hDlg, IDC_INTERLACING, config->interlacing ? BST_CHECKED : BST_UNCHECKED);                  CheckDlgButton(hDlg, IDC_INTERLACING, config->interlacing ? BST_CHECKED : BST_UNCHECKED);
579                  break;                  break;
# Line 576  Line 587 
587    
588          case DLG_2PASS :          case DLG_2PASS :
589                  SetDlgItemInt(hDlg, IDC_KFBOOST, config->keyframe_boost, FALSE);                  SetDlgItemInt(hDlg, IDC_KFBOOST, config->keyframe_boost, FALSE);
                 SetDlgItemInt(hDlg, IDC_MINKEY, config->min_key_interval, FALSE);  
590                  CheckDlgButton(hDlg, IDC_DISCARD1PASS, config->discard1pass ? BST_CHECKED : BST_UNCHECKED);                  CheckDlgButton(hDlg, IDC_DISCARD1PASS, config->discard1pass ? BST_CHECKED : BST_UNCHECKED);
591                  CheckDlgButton(hDlg, IDC_DUMMY2PASS, config->dummy2pass ? BST_CHECKED : BST_UNCHECKED);                  CheckDlgButton(hDlg, IDC_DUMMY2PASS, config->dummy2pass ? BST_CHECKED : BST_UNCHECKED);
592    
# Line 605  Line 615 
615    
616                  CheckDlgButton(hDlg, IDC_USEAUTOBONUS, config->alt_curve_use_auto_bonus_bias ? BST_CHECKED : BST_UNCHECKED);                  CheckDlgButton(hDlg, IDC_USEAUTOBONUS, config->alt_curve_use_auto_bonus_bias ? BST_CHECKED : BST_UNCHECKED);
617                  SetDlgItemInt(hDlg, IDC_BONUSBIAS, config->alt_curve_bonus_bias, FALSE);                  SetDlgItemInt(hDlg, IDC_BONUSBIAS, config->alt_curve_bonus_bias, FALSE);
618    
619                    SetDlgItemInt(hDlg, IDC_MAXBITRATE, config->twopass_max_bitrate / CONFIG_KBPS, FALSE);
620                    SetDlgItemInt(hDlg, IDC_OVERIMP, config->twopass_max_overflow_improvement, FALSE);
621                    SetDlgItemInt(hDlg, IDC_OVERDEG, config->twopass_max_overflow_degradation, FALSE);
622                  break;                  break;
623    
624          case DLG_CREDITS :          case DLG_CREDITS :
# Line 645  Line 659 
659    
660                  CheckRadioButton(hDlg, IDC_CPU_AUTO, IDC_CPU_FORCE,                  CheckRadioButton(hDlg, IDC_CPU_AUTO, IDC_CPU_FORCE,
661                          config->cpu & XVID_CPU_FORCE ? IDC_CPU_FORCE : IDC_CPU_AUTO );                          config->cpu & XVID_CPU_FORCE ? IDC_CPU_FORCE : IDC_CPU_AUTO );
662    
663                    SetDlgItemInt(hDlg, IDC_CBR_REACTIONDELAY, config->rc_reaction_delay_factor, FALSE);
664                    SetDlgItemInt(hDlg, IDC_CBR_AVERAGINGPERIOD, config->rc_averaging_period, FALSE);
665                    SetDlgItemInt(hDlg, IDC_CBR_BUFFER, config->rc_buffer, FALSE);
666                  break;                  break;
667          }          }
668  }  }
# Line 665  Line 683 
683                  config->quant_type = SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_GETCURSEL, 0, 0);                  config->quant_type = SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_GETCURSEL, 0, 0);
684                  config->fourcc_used = SendDlgItemMessage(hDlg, IDC_FOURCC, CB_GETCURSEL, 0, 0);                  config->fourcc_used = SendDlgItemMessage(hDlg, IDC_FOURCC, CB_GETCURSEL, 0, 0);
685                  config->max_key_interval = config_get_int(hDlg, IDC_MAXKEY, config->max_key_interval);                  config->max_key_interval = config_get_int(hDlg, IDC_MAXKEY, config->max_key_interval);
686                    config->min_key_interval = config_get_int(hDlg, IDC_MINKEY, config->min_key_interval);
687                  config->lum_masking = ISDLGSET(IDC_LUMMASK);                  config->lum_masking = ISDLGSET(IDC_LUMMASK);
688                  config->interlacing = ISDLGSET(IDC_INTERLACING);                  config->interlacing = ISDLGSET(IDC_INTERLACING);
689                  break;                  break;
# Line 683  Line 702 
702    
703          case DLG_2PASS :          case DLG_2PASS :
704                  config->keyframe_boost = GetDlgItemInt(hDlg, IDC_KFBOOST, NULL, FALSE);                  config->keyframe_boost = GetDlgItemInt(hDlg, IDC_KFBOOST, NULL, FALSE);
                 config->min_key_interval = config_get_int(hDlg, IDC_MINKEY, config->min_key_interval);  
705                  config->discard1pass = ISDLGSET(IDC_DISCARD1PASS);                  config->discard1pass = ISDLGSET(IDC_DISCARD1PASS);
706                  config->dummy2pass = ISDLGSET(IDC_DUMMY2PASS);                  config->dummy2pass = ISDLGSET(IDC_DUMMY2PASS);
707                  config->curve_compression_high = GetDlgItemInt(hDlg, IDC_CURVECOMPH, NULL, FALSE);                  config->curve_compression_high = GetDlgItemInt(hDlg, IDC_CURVECOMPH, NULL, FALSE);
# Line 724  Line 742 
742                  config->alt_curve_high_dist = config_get_int(hDlg, IDC_ALTCURVEHIGH, config->alt_curve_high_dist);                  config->alt_curve_high_dist = config_get_int(hDlg, IDC_ALTCURVEHIGH, config->alt_curve_high_dist);
743                  config->alt_curve_low_dist = config_get_int(hDlg, IDC_ALTCURVELOW, config->alt_curve_low_dist);                  config->alt_curve_low_dist = config_get_int(hDlg, IDC_ALTCURVELOW, config->alt_curve_low_dist);
744                  config->alt_curve_min_rel_qual = config_get_int(hDlg, IDC_MINQUAL, config->alt_curve_min_rel_qual);                  config->alt_curve_min_rel_qual = config_get_int(hDlg, IDC_MINQUAL, config->alt_curve_min_rel_qual);
745    
746                    config->twopass_max_bitrate /= CONFIG_KBPS;
747                    config->twopass_max_bitrate = config_get_int(hDlg, IDC_MAXBITRATE, config->twopass_max_bitrate);
748                    config->twopass_max_bitrate *= CONFIG_KBPS;
749                    config->twopass_max_overflow_improvement = config_get_int(hDlg, IDC_OVERIMP, config->twopass_max_overflow_improvement);
750                    config->twopass_max_overflow_degradation = config_get_int(hDlg, IDC_OVERDEG, config->twopass_max_overflow_degradation);
751    
752                    CONSTRAINVAL(config->twopass_max_overflow_improvement, 1, 80);
753                    CONSTRAINVAL(config->twopass_max_overflow_degradation, 1, 80);
754                  break;                  break;
755    
756          case DLG_CREDITS :          case DLG_CREDITS :
# Line 770  Line 797 
797                  config->cpu |= ISDLGSET(IDC_CPU_3DNOW) ? XVID_CPU_3DNOW: 0;                  config->cpu |= ISDLGSET(IDC_CPU_3DNOW) ? XVID_CPU_3DNOW: 0;
798                  config->cpu |= ISDLGSET(IDC_CPU_3DNOWEXT) ? XVID_CPU_3DNOWEXT: 0;                  config->cpu |= ISDLGSET(IDC_CPU_3DNOWEXT) ? XVID_CPU_3DNOWEXT: 0;
799                  config->cpu |= ISDLGSET(IDC_CPU_FORCE) ? XVID_CPU_FORCE : 0;                  config->cpu |= ISDLGSET(IDC_CPU_FORCE) ? XVID_CPU_FORCE : 0;
800    
801                    config->rc_reaction_delay_factor = config_get_int(hDlg, IDC_CBR_REACTIONDELAY, config->rc_reaction_delay_factor);
802                    config->rc_averaging_period = config_get_int(hDlg, IDC_CBR_AVERAGINGPERIOD, config->rc_averaging_period);
803                    config->rc_buffer = config_get_int(hDlg, IDC_CBR_BUFFER, config->rc_buffer);
804                  break;                  break;
805          }          }
806  }  }
# Line 851  Line 882 
882                  SendDlgItemMessage(hDlg, IDC_MODE, CB_ADDSTRING, 0, (LPARAM)"Null - test speed");                  SendDlgItemMessage(hDlg, IDC_MODE, CB_ADDSTRING, 0, (LPARAM)"Null - test speed");
883    
884                  SendDlgItemMessage(hDlg, IDC_MODE, CB_SETCURSEL, config->mode, 0);                  SendDlgItemMessage(hDlg, IDC_MODE, CB_SETCURSEL, config->mode, 0);
                 SetDlgItemInt(hDlg, IDC_CBRBUFFER, config->rc_buffersize, FALSE);  
885    
886                  InitCommonControls();                  InitCommonControls();
887    
# Line 902  Line 932 
932                          config_reg_default(config);                          config_reg_default(config);
933    
934                          SendDlgItemMessage(hDlg, IDC_MODE, CB_SETCURSEL, config->mode, 0);                          SendDlgItemMessage(hDlg, IDC_MODE, CB_SETCURSEL, config->mode, 0);
                         SetDlgItemInt(hDlg, IDC_CBRBUFFER, config->rc_buffersize, FALSE);  
935    
936                          main_slider(hDlg, config);                          main_slider(hDlg, config);
937                          main_value(hDlg, config);                          main_value(hDlg, config);

Legend:
Removed from v.102  
changed lines
  Added in v.121

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4