Changeset 5025:35982a4396fb in roaraudio


Ignore:
Timestamp:
05/28/11 11:28:11 (13 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

prepare VS API for SYNC streams (FILTER), adding a flag for defaulting to PAUSE.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/vs.h

    r4850 r5025  
    284284 ROAR_VS_CMD_GET_LATC_MINLAG, 
    285285#define ROAR_VS_CMD_GET_LATC_MINLAG ROAR_VS_CMD_GET_LATC_MINLAG 
     286 
     287 // Volume: 
    286288 ROAR_VS_CMD_SET_FREE_VOLUME, 
    287289#define ROAR_VS_CMD_SET_FREE_VOLUME ROAR_VS_CMD_SET_FREE_VOLUME 
    288290 ROAR_VS_CMD_GET_FREE_VOLUME, 
    289291#define ROAR_VS_CMD_GET_FREE_VOLUME ROAR_VS_CMD_GET_FREE_VOLUME 
     292 
     293 // auto pause flag, needed for sync streams: 
     294 ROAR_VS_CMD_SET_DEFAULT_PAUSED, 
     295#define ROAR_VS_CMD_SET_DEFAULT_PAUSED ROAR_VS_CMD_SET_DEFAULT_PAUSED 
     296 ROAR_VS_CMD_GET_DEFAULT_PAUSED, 
     297#define ROAR_VS_CMD_GET_DEFAULT_PAUSED ROAR_VS_CMD_GET_DEFAULT_PAUSED 
    290298}; 
    291299 
  • libroar/vs.c

    r4873 r5025  
    4646#define FLAG_CLOSEFILE 0x0008 
    4747#define FLAG_FREE_VOL  0x0010 
     48#define FLAG_DEF_PAUSE 0x0020 
    4849#define FLAG_DIR_IN    0x1000 
    4950#define FLAG_DIR_OUT   0x2000 
     
    157158 } 
    158159 
     160 if ( dir == ROAR_DIR_FILTER ) 
     161  vss->flags |= FLAG_DEF_PAUSE; 
     162 
    159163 _initerr(); 
    160164 
     
    13661370#endif 
    13671371  case ROAR_VS_CMD_SET_FREE_VOLUME: 
    1368     vss->flags |= FLAG_FREE_VOL; 
    1369     if ( !*(int*)argp ) { 
    1370      vss->flags -= FLAG_FREE_VOL; 
     1372    switch (*(int*)argp) { 
     1373     case ROAR_VS_TRUE: 
     1374       vss->flags |= FLAG_FREE_VOL; 
     1375      break; 
     1376     case ROAR_VS_FALSE: 
     1377       vss->flags |= FLAG_FREE_VOL; 
     1378       vss->flags -= FLAG_FREE_VOL; 
     1379      break; 
     1380     case ROAR_VS_TOGGLE: 
     1381       if ( vss->flags & FLAG_FREE_VOL ) { 
     1382        vss->flags -= FLAG_FREE_VOL; 
     1383       } else { 
     1384        vss->flags |= FLAG_FREE_VOL; 
     1385       } 
     1386      break; 
     1387     default: 
     1388       _seterr(ROAR_ERROR_INVAL); 
     1389       return -1; 
     1390      break; 
    13711391    } 
    13721392   break; 
    13731393  case ROAR_VS_CMD_GET_FREE_VOLUME: 
    1374     *(int*)argp = vss->flags & FLAG_FREE_VOL ? 1 : 0; 
     1394    *(int*)argp = vss->flags & FLAG_FREE_VOL ? ROAR_VS_TRUE : ROAR_VS_FALSE; 
     1395   break; 
     1396  case ROAR_VS_CMD_SET_DEFAULT_PAUSED: 
     1397    switch (*(int*)argp) { 
     1398     case ROAR_VS_TRUE: 
     1399       vss->flags |= FLAG_DEF_PAUSE; 
     1400      break; 
     1401     case ROAR_VS_FALSE: 
     1402       vss->flags |= FLAG_DEF_PAUSE; 
     1403       vss->flags -= FLAG_DEF_PAUSE; 
     1404      break; 
     1405     case ROAR_VS_TOGGLE: 
     1406       if ( vss->flags & FLAG_DEF_PAUSE ) { 
     1407        vss->flags -= FLAG_DEF_PAUSE; 
     1408       } else { 
     1409        vss->flags |= FLAG_DEF_PAUSE; 
     1410       } 
     1411      break; 
     1412     default: 
     1413       _seterr(ROAR_ERROR_INVAL); 
     1414       return -1; 
     1415      break; 
     1416    } 
     1417   break; 
     1418  case ROAR_VS_CMD_GET_DEFAULT_PAUSED: 
     1419    *(int*)argp = vss->flags & FLAG_DEF_PAUSE ? ROAR_VS_TRUE : ROAR_VS_FALSE; 
    13751420   break; 
    13761421// use ifndef here so warnings of unhandled enum values will be shown in DEBUG mode. 
    13771422#ifndef DEBUG 
    13781423  default: 
     1424    _seterr(ROAR_ERROR_INVAL); 
    13791425    return -1; 
    13801426   break; 
Note: See TracChangeset for help on using the changeset viewer.