VirtualBox

Ignore:
Timestamp:
Feb 14, 2010 9:39:00 PM (15 years ago)
Author:
vboxsync
Message:

*: RTGetOpt cleanup related to --help and --version (now standard option). Use RTGetOptPrintError.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp

    r26439 r26517  
    3939# include <VBox/vrdpapi.h>
    4040#endif
     41#include <iprt/buildconfig.h>
    4142#include <iprt/ctype.h>
    4243#include <iprt/initterm.h>
     
    681682        { "--capture", 'c', 0 },
    682683        { "--width", 'w', RTGETOPT_REQ_UINT32 },
    683         { "--height", 'h', RTGETOPT_REQ_UINT32 },
     684        { "--height", 'h', RTGETOPT_REQ_UINT32 }, /* great choice of short option! */
    684685        { "--bitrate", 'r', RTGETOPT_REQ_UINT32 },
    685686        { "--filename", 'f', RTGETOPT_REQ_STRING },
     
    746747                ulFrameWidth = ValueUnion.u32;
    747748                break;
    748             case 'h':
    749                 ulFrameHeight = ValueUnion.u32;
    750                 break;
    751749            case 'r':
    752750                ulBitRate = ValueUnion.u32;
     
    756754                break;
    757755#endif /* VBOX_FFMPEG defined */
    758             case VINF_GETOPT_NOT_OPTION:
    759                 RTPrintf("Invalid parameter '%s'\n\n", ValueUnion.psz);
     756            case 'h':
     757#ifdef VBOX_FFMPEG
     758                if ((GetState.pDef->fFlags & RTGETOPT_REQ_MASK) != RTGETOPT_REQ_NOTHING)
     759                {
     760                    ulFrameHeight = ValueUnion.u32;
     761                    break;
     762                }
     763#endif
    760764                show_usage();
    761                 return -1;
     765                return 0;
    762766            case OPT_COMMENT:
    763767                /* nothing to do */
    764768                break;
     769            case 'V':
     770                RTPrintf("%sr%s\n", RTBldCfgVersion(), RTBldCfgRevisionStr());
     771                return 0;
    765772            default:
    766                 if (ch > 0)
    767                 {
    768                     if (RT_C_IS_PRINT(ch))
    769                         RTPrintf("Invalid option -%c\n\n", ch);
    770                     else
    771                         RTPrintf("Invalid option case %i\n\n", ch);
    772                 }
    773                 else if (ch == VERR_GETOPT_UNKNOWN_OPTION)
    774                     RTPrintf("Unknown option: %s\n\n", ValueUnion.psz);
    775                 else if (ValueUnion.pDef)
    776                     RTPrintf("%s: %Rrs\n\n", ValueUnion.pDef->pszLong, ch);
    777                 else
    778                     RTPrintf("Error: %Rrs\n\n", ch);
     773                ch = RTGetOptPrintError(ch, &ValueUnion);
    779774                show_usage();
    780                 return -1;
     775                return ch;
    781776        }
    782777    }
     
    786781    {
    787782        LogError("VBoxHeadless: ERROR: please specify an even frame width between 512 and 2048", 0);
    788         return -1;
     783        return 1;
    789784    }
    790785    if (ulFrameHeight < 384 || ulFrameHeight > 1536 || ulFrameHeight % 2)
    791786    {
    792787        LogError("VBoxHeadless: ERROR: please specify an even frame height between 384 and 1536", 0);
    793         return -1;
     788        return 1;
    794789    }
    795790    if (ulBitRate < 300000 || ulBitRate > 1000000)
    796791    {
    797792        LogError("VBoxHeadless: ERROR: please specify an even bitrate between 300000 and 1000000", 0);
    798         return -1;
     793        return 1;
    799794    }
    800795    /* Make sure we only have %d or %u (or none) in the file name specified */
     
    803798    {
    804799        LogError("VBoxHeadless: ERROR: Only %%d and %%u are allowed in the capture file name.", -1);
    805         return -1;
     800        return 1;
    806801    }
    807802    /* And no more than one % in the name */
     
    809804    {
    810805        LogError("VBoxHeadless: ERROR: Only one format modifier is allowed in the capture file name.", -1);
    811         return -1;
     806        return 1;
    812807    }
    813808    RTStrPrintf(&pszMPEGFile[0], RTPATH_MAX, pszFileNameParam, RTProcSelf());
     
    817812    {
    818813        show_usage();
    819         return -1;
     814        return 1;
    820815    }
    821816
     
    826821    {
    827822        RTPrintf("VBoxHeadless: ERROR: failed to initialize COM!\n");
    828         return rc;
     823        return 1;
    829824    }
    830825
     
    11721167    LogFlow(("VBoxHeadless FINISHED.\n"));
    11731168
    1174     return rc;
     1169    return FAILED(rc) ? 1 : 0;
    11751170}
    11761171
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette