smilint output for ./AUDIO-PLAYBACK-CONTROL-MIB


Message Severities
SeverityCount
error1
minor error1
warning1
Message Types
TypeCount
import-failed (error)1
revision-missing (minor error)1
sequence-order (warning)1

Messages:

AUDIO-PLAYBACK-CONTROL-MIB

   1: -- extracted from draft-blevin-snmp-audio-jukebox-00.txt
   2: -- at Thu Apr  4 06:13:38 2002
   3: 
   4:    AUDIO-PLAYBACK-CONTROL-MIB DEFINITIONS ::= BEGIN
   5: 
   6:    IMPORTS
   7:        OBJECT-TYPE, MODULE-IDENTITY, enterprises,
   8:        Unsigned32, Integer32, BITS                  FROM SNMPv2-SMI
   8: error - identifier `BITS' cannot be imported from module `SNMPv2-SMI'
   9:        RowStatus, DisplayString, DateAndTime        FROM SNMPv2-TC
  10:        MODULE-COMPLIANCE, OBJECT-GROUP              FROM SNMPv2-CONF;
  11: 
  12:    -- gratefulNet OBJECT IDENTIFIER ::= { enterprises 4648 }
  13: 
  14:    audioPlaybackMIB MODULE-IDENTITY
  15:        LAST-UPDATED         "200204010000Z"  -- April 1, 2002
  16:        ORGANIZATION         "The Grateful Net"
  17:        CONTACT-INFO         "Bryan Levin
  18:                              E-mail: snmp1@grateful.net"
  19: 
  20:        DESCRIPTION
  21:            "The MIB module is for defining remote audio playback (mp3,
  22:             etc) from an SNMP-enabled audio jukebox device."
  23:        ::= { enterprises gratefulNet(4648) 128 }
  23: minor error - revision for last update is missing
  24: 
  25:    --  playback capabilities (read-only)
  26:    auPlaybackCapabilities  OBJECT IDENTIFIER ::= { audioPlaybackMIB 1 }
  27: 
  28: 
  29:    -- global control variables (read-write)
  30:    auPlaybackScalars       OBJECT IDENTIFIER ::= { audioPlaybackMIB 2 }
  31: 
  32: 
  33:    -- all tables (read-only and read-create)
  34:    auPlaybackTables        OBJECT IDENTIFIER ::= { audioPlaybackMIB 3 }
  35: 
  36: 
  37: 
  38: 
  39:    -- Agent Capabilities (read-only scalars)
  40:    --  These are useful in determining the abilities of the audio
  41:    --  jukebox's remote management interface.
  42: 
  43:    auHwCapabilities OBJECT-TYPE
  44:        SYNTAX      BITS {
  45:                        volume(0),
  46:                        bass(1),
  47:                        treble(2),
  48:                        balance(3)
  49:                    }
  50:        MAX-ACCESS  read-only
  51:        STATUS      current
  52:        DESCRIPTION
  53:            "The hardware capabilities, expressed as a bitstring.  It is
  54:             advisable that the NMS check this variable before blindly
  55:             setting values to the auHwCtl scalars, as not all may be
  56:             fully implemented at the playback/jukebox device."
  57:        ::= { auPlaybackCapabilities 1 }
  58: 
  59: 
  60: 
  61:    --
  62:    -- Global Control Scalars (read-write)
  63:    --  These are useful in controlling the final output signal
  64:    --  characteristics,  whether the output is in digital or analog
  65:    --  form.
  66: 
  67:    auHwCtlVolume OBJECT-TYPE
  68:        SYNTAX      Unsigned32 (0..100)
  69:        MAX-ACCESS  read-write
  70:        STATUS      current
  71:        DESCRIPTION
  72:            "The playback volume, measured in percent of fullscale.
  73:             Setting to 100 will cause the output stage to run at full
  74:             gain level.  Setting to zero will fully mute the output
  75:             stage (no sound output at all)."
  76:        ::= { auPlaybackScalars 1 }
  77: 
  78:    auHwCtlBass OBJECT-TYPE
  79:        SYNTAX      Integer32 (-100..100)
  80:        MAX-ACCESS  read-write
  81:        STATUS      current
  82:        DESCRIPTION
  83:            "The playback Bass, measured in percent of fullscale.
  84:             Setting negative values attenuates the tone (negative gain)
  85:             while setting positive values increases the tone (positive
  86:             gain).  The value of zero yields 'flat' or no tonal
  87:             correction."
  88:        ::= { auPlaybackScalars 2 }
  89: 
  90:    auHwCtlTreble OBJECT-TYPE
  91:        SYNTAX      Integer32 (-100..100)
  92:        MAX-ACCESS  read-write
  93:        STATUS      current
  94:        DESCRIPTION
  95:            "The playback Treble, measured in percent of fullscale.
  96:             Setting negative values attenuates the tone (negative gain)
  97:             while setting positive values increases the tone (positive
  98:             gain).  The value of zero yields 'flat' or no tonal
  99:             correction."
 100:        ::= { auPlaybackScalars 3 }
 101: 
 102:    auHwCtlBalance OBJECT-TYPE
 103:        SYNTAX      Integer32 (-100..100)
 104:        MAX-ACCESS  read-write
 105:        STATUS      current
 106:        DESCRIPTION
 107:            "The playback left/right balance, measured in percent of
 108:             fullscale.  Setting negative values attenuates the right
 109:             channel while at the same time increasing gain on the left
 110:             channel.  Setting the value to -100 or +100 will cause
 111:             one channel to play at full volume and the other channel
 112:             be set to full attenuation (ie, no volume).  Setting the
 113:             value of zero yields 'center' balance, or both channels
 114:             driven to equal output levels."
 115:        ::= { auPlaybackScalars 4 }
 116: 
 117: 
 118: 
 119:    -- Available (Stored) Music Database Table
 120:    --  This table is maintained locally as a direct result of the local
 121:    --  database maintainer adding, removing or changing songs in
 122:    --  his/her music catalog. SNMP Access to this table is entirely
 123:    --  read-only.
 124: 
 125:    auDbTable OBJECT-TYPE
 126:        SYNTAX      SEQUENCE OF AuDbEntry
 127:        MAX-ACCESS  not-accessible
 128:        STATUS      current
 129:        DESCRIPTION
 130:            "This table lists all available audio files that are
 131:             candidates for playback via remote SNMP control."
 132:        ::= { auPlaybackTables 1 }
 133: 
 134:    auDbEntry OBJECT-TYPE
 135:        SYNTAX      AuDbEntry
 136:        MAX-ACCESS  not-accessible
 137:        STATUS      current
 138:        DESCRIPTION
 139:            "The music database table entry."
 140:        INDEX { auDbIndex }
 141:        ::= { auDbTable 1 }
 142: 
 143:    AuDbEntry ::= SEQUENCE {
 143: warning - warning: SEQUENCE element #9 `auDbSongEncBitRate' does not match order of columnar objects under `auDbEntry'
 144:        auDbIndex            Unsigned32,
 145:        auDbArtistName       DisplayString,
 146:        auDbAlbumId          DisplayString,
 147:        auDbAlbumTitle       DisplayString,
 148:        auDbSongTitle        DisplayString,
 149:        auDbAlbumSongNumber  Unsigned32,
 150:        auDbGenre            DisplayString,
 151:        auDbYear             DateAndTime,
 152:        auDbSongEncBitRate   Unsigned32,
 153:        auDbSongEncoding     INTEGER,
 154:        auDbSongPlayLength   Unsigned32
 155:    }
 156: 
 157:    auDbIndex OBJECT-TYPE
 158:        SYNTAX      Unsigned32 (1..4294967295)
 159:        MAX-ACCESS  not-accessible
 160:        STATUS      current
 161:        DESCRIPTION
 162:            "An integer to uniquely identify the song entry that is to
 163:             be transferred to the active play list queue (auReqTable)."
 164:        ::= { auDbEntry 1 }
 165: 
 166:    auDbArtistName OBJECT-TYPE
 167:        SYNTAX      DisplayString
 168:        MAX-ACCESS  read-only
 169:        STATUS      current
 170:        DESCRIPTION
 171:            "The artist name, in ASCII."
 172:        ::= { auDbEntry 2 }
 173: 
 174:    auDbAlbumId OBJECT-TYPE
 175:        SYNTAX      DisplayString
 176:        MAX-ACCESS  read-only
 177:        STATUS      current
 178:        DESCRIPTION
 179:            "The globally unique album id, following the CDDB standard.
 180:             This value is represented as an ASCII string of hexadecimal
 181:             characters for simplicity."
 182:        ::= { auDbEntry 3 }
 183: 
 184:    auDbAlbumTitle OBJECT-TYPE
 185:        SYNTAX      DisplayString
 186:        MAX-ACCESS  read-only
 187:        STATUS      current
 188:        DESCRIPTION
 189:            "The album name, in ASCII."
 190:        ::= { auDbEntry 4 }
 191: 
 192:    auDbSongTitle OBJECT-TYPE
 193:        SYNTAX      DisplayString
 194:        MAX-ACCESS  read-only
 195:        STATUS      current
 196:        DESCRIPTION
 197:            "The song title, in ASCII."
 198:        ::= { auDbEntry 5 }
 199: 
 200:    auDbAlbumSongNumber OBJECT-TYPE
 201:        SYNTAX      Unsigned32
 202:        MAX-ACCESS  read-only
 203:        STATUS      current
 204:        DESCRIPTION
 205:            "The relative song number within an album.  The first song in
 206:             an album is defined to be at offset 1 (ie, this is a 1-based
 207:             variable; the value of zero is undefined)."
 208:        ::= { auDbEntry 6 }
 209: 
 210:    auDbGenre OBJECT-TYPE
 211:        SYNTAX      DisplayString
 212:        MAX-ACCESS  read-only
 213:        STATUS      current
 214:        DESCRIPTION
 215:            "The genre, in ASCII."
 216:        ::= { auDbEntry 7 }
 217: 
 218:    auDbYear OBJECT-TYPE
 219:        SYNTAX      DateAndTime
 220:        MAX-ACCESS  read-only
 221:        STATUS      current
 222:        DESCRIPTION
 223:            "The year the song was published."
 224:        ::= { auDbEntry 8 }
 225: 
 226:    auDbSongEncoding OBJECT-TYPE
 227:        SYNTAX      INTEGER {
 228:                       wave(1),
 229:                       shorten(2),
 230:                       mp3vbr(3),
 231:                       mp3cbr(4)
 232:                    }
 233:        MAX-ACCESS  read-only
 234:        STATUS      current
 235:        DESCRIPTION
 236:            "An enum value that maps to a standard file encoding, as
 237:             used to initially create the audio file."
 238:        ::= { auDbEntry 9 }
 239: 
 240:    auDbSongEncBitRate OBJECT-TYPE
 241:        SYNTAX      Unsigned32
 242:        MAX-ACCESS  read-only
 243:        STATUS      current
 244:        DESCRIPTION
 245:            "If audio file is compressed, return the effective bit-rate
 246:             as an unsigned integer (eg, 128, 160, 192, 256, 320, etc).
 247:             If audio is not compressed, the value 0 should be returned."
 248:        ::= { auDbEntry 10 }
 249: 
 250:    auDbSongPlayLength OBJECT-TYPE
 251:        SYNTAX      Unsigned32
 252:        MAX-ACCESS  read-only
 253:        STATUS      current
 254:        DESCRIPTION
 255:            "The realtime length of the song, measured in seconds."
 256:        ::= { auDbEntry 11 }
 257: 
 258: 
 259: 
 260: 
 261: 
 262: 
 263:    -- Audio Request Table
 264:    --  This table accepts remote SNMP SET requests.  Entries in this
 265:    --  table are created from remote users who wish to request that
 266:    --  a song in the available (stored) music database be queued up
 267:    --  for playback.
 268: 
 269:    auReqTable OBJECT-TYPE
 270:        SYNTAX      SEQUENCE OF AuReqEntry
 271:        MAX-ACCESS  not-accessible
 272:        STATUS      current
 273:        DESCRIPTION
 274:            "This table contains entries created via remote NMSs on
 275:             behalf of users wishing for specific songs to be entered
 276:             into the central playback queue."
 277:        ::= { auPlaybackTables 2 }
 278: 
 279:    auReqEntry OBJECT-TYPE
 280:        SYNTAX      AuReqEntry
 281:        MAX-ACCESS  not-accessible
 282:        STATUS      current
 283:        DESCRIPTION
 284:             "The audio request entry."
 285:        INDEX { auReqIndex }
 286:        ::= { auReqTable 1 }
 287: 
 288:    AuReqEntry ::= SEQUENCE {
 289:        auReqIndex              Unsigned32,
 290:        auReqSongId             Unsigned32,
 291:        auReqEntryStatus        RowStatus
 292:    }
 293: 
 294:    auReqIndex OBJECT-TYPE
 295:        SYNTAX      Unsigned32 (1..4294967295)
 296:        MAX-ACCESS  not-accessible
 297:        STATUS      current
 298:        DESCRIPTION
 299:            "An arbitrary integer to uniquely identify this entry.  To
 300:            create an entry a management application should pick a
 301:            random number."
 302:        ::= { auReqEntry 1 }
 303: 
 304:    auReqSongId OBJECT-TYPE
 305:        SYNTAX      Unsigned32 (1..4294967295)
 306:        MAX-ACCESS  read-create
 307:        STATUS      current
 308:        DESCRIPTION
 309:            "This refers to a valid song-id from the table of available
 310:             songs, auMusicDbTable."
 311:        ::= { auReqEntry 2 }
 312: 
 313:    auReqEntryStatus OBJECT-TYPE
 314:        SYNTAX      RowStatus
 315:        MAX-ACCESS  read-create
 316:        STATUS      current
 317:        DESCRIPTION
 318:            "The control variable that allows creation, modification,
 319:            and deletion of entries in this table.  The only valid
 320:            value for this variable is createAndGo.  Upon successful
 321:            row creation in this table, a new row in the auQueue table
 322:            will be auto-created; which represents an actual to-do
 323:            playback item in a time-ordered (FIFO) queue.
 324: 
 325:            Rows in this table are always auto-deleted by the agent
 326:            immediately after a successful row-create in the auQueue
 327:            table."
 328:        ::= { auReqEntry 3 }
 329: 
 330: 
 331: 
 332: 
 333: 
 334:    -- Playback Queue Table
 335:    --  This table accepts remote SNMP SET requests.  Entries in this
 336:    --  table are created as a direct result of table row-creates
 337:    --  in the auReq table.
 338: 
 339:    auQueueTable OBJECT-TYPE
 340:        SYNTAX      SEQUENCE OF AuQueueEntry
 341:        MAX-ACCESS  not-accessible
 342:        STATUS      current
 343:        DESCRIPTION
 344:            "This table contains entries created via the local agent
 345:             as a direct result of rows created in the auReq table.
 346:             There will be one entry in this table for each pending
 347:             song playback request."
 348:        ::= { auPlaybackTables 3 }
 349: 
 350:    auQueueEntry OBJECT-TYPE
 351:        SYNTAX      AuQueueEntry
 352:        MAX-ACCESS  not-accessible
 353:        STATUS      current
 354:        DESCRIPTION
 355:             "The queued song entry."
 356:        INDEX { auQueueIndex }
 357:        ::= { auQueueTable 1 }
 358: 
 359:    AuQueueEntry ::= SEQUENCE {
 360:        auQueueIndex              Unsigned32,
 361:        auQueueSongId             Unsigned32,
 362:        auQueueEntryStatus        RowStatus
 363:    }
 364: 
 365:    auQueueIndex OBJECT-TYPE
 366:        SYNTAX      Unsigned32 (1..4294967295)
 367:        MAX-ACCESS  not-accessible
 368:        STATUS      current
 369:        DESCRIPTION
 370:            "An arbitrary integer to uniquely identify this entry.
 371:             Entries in this table are auto-created by the local
 372:             agent.  The current song is the lowest numbered instance.
 373:             Upon completion of playback of the current song, its row
 374:             is auto-deleted by the local agent and the song with next
 375:             lexi-ordered instance begins playback.  When the maximum
 376:             instance-id is reached, the instance will wrap back to
 377:             the first valid id, which is defined to be 1."
 378:        ::= { auQueueEntry 1 }
 379: 
 380:    auQueueSongId OBJECT-TYPE
 381:        SYNTAX      Unsigned32 (1..4294967295)
 382:        MAX-ACCESS  read-create
 383:        STATUS      current
 384:        DESCRIPTION
 385:            "This refers to a valid song-id from the table of available
 386:             songs, auMusicDbTable."
 387:        ::= { auQueueEntry 2 }
 388: 
 389:    auQueueEntryStatus OBJECT-TYPE
 390:        SYNTAX      RowStatus
 391:        MAX-ACCESS  read-create
 392:        STATUS      current
 393:        DESCRIPTION
 394:            "The control variable that allows creation, modification,
 395:            and deletion of entries in this table.  This table
 396:            represents the to-do list of songs waiting to be played.
 397:            Deleting rows in this table cause playback of the
 398:            corresponding song to be aborted and the next one in
 399:            the table to be started."
 400:        ::= { auQueueEntry 3 }
 401: 
 402: 
 403: 
 404: 
 405: 
 406:    --
 407:    -- Conformance
 408:    --
 409:    auPlaybackMIBConformance
 410:       OBJECT IDENTIFIER ::= { audioPlaybackMIB 4 }
 411: 
 412:    auPlaybackMIBCompliances
 413:       OBJECT IDENTIFIER ::= { auPlaybackMIBConformance 1 }
 414: 
 415:    auPlaybackMIBGroups
 416:       OBJECT IDENTIFIER ::= { auPlaybackMIBConformance 2 }
 417: 
 418: 
 419: 
 420:    --
 421:    -- Compliance
 422:    --
 423: 
 424:    auPlaybackMIBCompliance MODULE-COMPLIANCE
 425:            STATUS current
 426:            DESCRIPTION
 427:                "The compliance statement for entities which implement
 428:                the Audio Playback Control MIB.  Implementation of this
 429:                MIB is based on having too much spare time on your
 430:                hands."
 431:            MODULE  -- this module
 432:                    MANDATORY-GROUPS {
 433:                            auHwCtlGroup,
 434:                            auPlaybackDbGroup,
 435:                            auPlaybackRequestGroup,
 436:                            auQueueGroup
 437:                    }
 438:            ::= { auPlaybackMIBCompliances 1 }
 439: 
 440:    --
 441:    -- Units of Conformance
 442:    --
 443:    auHwCtlGroup OBJECT-GROUP
 444:            OBJECTS {
 445:                auHwCapabilities,
 446:                auHwCtlVolume,
 447:                auHwCtlBass,
 448:                auHwCtlTreble,
 449:                auHwCtlBalance
 450:            }
 451:            STATUS current
 452:            DESCRIPTION
 453:                "Audio Hardware management."
 454:            ::= { auPlaybackMIBGroups 1 }
 455: 
 456:    auPlaybackDbGroup OBJECT-GROUP
 457:            OBJECTS {
 458:                auDbArtistName,
 459:                auDbAlbumId,
 460:                auDbAlbumTitle,
 461:                auDbSongTitle,
 462:                auDbAlbumSongNumber,
 463:                auDbGenre,
 464:                auDbYear,
 465:                auDbSongEncBitRate,
 466:                auDbSongEncoding,
 467:                auDbSongPlayLength
 468:            }
 469:            STATUS current
 470:            DESCRIPTION
 471:                "Audio Library management."
 472:            ::= { auPlaybackMIBGroups 2 }
 473: 
 474:    auPlaybackRequestGroup OBJECT-GROUP
 475:            OBJECTS {
 476:                auReqSongId,
 477:                auReqEntryStatus
 478:            }
 479:            STATUS current
 480:            DESCRIPTION
 481:                "Audio file entry to be added to playback queue."
 482:            ::= { auPlaybackMIBGroups 3 }
 483: 
 484:    auQueueGroup OBJECT-GROUP
 485:            OBJECTS {
 486:                auQueueSongId,
 487:                auQueueEntryStatus
 488:            }
 489:            STATUS current
 490:            DESCRIPTION
 491:                "Audio file entry currently in the to-do (play) list."
 492:            ::= { auPlaybackMIBGroups 4 }
 493: 
 494:    END
 495: 
 496: -- 
 497: --    Copyright (C) The Internet Society (2002).  All Rights Reserved.
 498: -- 
 499: --    This document and translations of it may be copied and furnished to
 500: --    others, and derivative works that comment on or otherwise explain it
 501: --    or assist in its implementation may be prepared, copied, published
 502: --    and distributed, in whole or in part, without restriction of any
 503: --    kind, provided that the above copyright notice and this paragraph are
 504: --    included on all such copies and derivative works.  However, this
 505: --    document itself may not be modified in any way, such as by removing
 506: --    the copyright notice or references to the Internet Society or other
 507: --    Internet organizations, except as needed for the purpose of
 508: --    developing Internet standards in which case the procedures for
 509: --    copyrights defined in the Internet Standards process must be
 510: --    followed, or as required to translate it into languages other than
 511: --    English.
 512: -- 
 513: --    The limited permissions granted above are perpetual and will not be
 514: --    revoked by the Internet Society or its successors or assigns.
 515: -- 
 516: --    This document and the information contained herein is provided on an
 517: --    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
 518: --    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
 519: --    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
 520: --    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
 521: --    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 522: -- 
 523: