Annotation of driverkit/libDriver/Kernel/AudioChannel.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
        !             7:  * Reserved.  This file contains Original Code and/or Modifications of
        !             8:  * Original Code as defined in and that are subject to the Apple Public
        !             9:  * Source License Version 1.1 (the "License").  You may not use this file
        !            10:  * except in compliance with the License.  Please obtain a copy of the
        !            11:  * License at http://www.apple.com/publicsource and read it before using
        !            12:  * this file.
        !            13:  * 
        !            14:  * The Original Code and all software distributed under the License are
        !            15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT.  Please see the
        !            19:  * License for the specific language governing rights and limitations
        !            20:  * under the License.
        !            21:  * 
        !            22:  * @APPLE_LICENSE_HEADER_END@
        !            23:  */
        !            24: /*
        !            25:  * AudioChannel.h
        !            26:  *
        !            27:  * Copyright (c) 1991, NeXT Computer, Inc.  All rights reserved.
        !            28:  *
        !            29:  *      Audio driver channel object.
        !            30:  *
        !            31:  * HISTORY
        !            32:  *      07/14/92/mtm    Original coding.
        !            33:  */
        !            34: 
        !            35: #import <kern/lock.h>
        !            36: #import "audio_types.h"
        !            37: #import <mach/mach_user_internal.h>
        !            38: #import <mach/mach_interface.h>
        !            39: 
        !            40: #import <objc/List.h>
        !            41: #import <machkit/NXLock.h>
        !            42: #import <kernserv/queue.h>
        !            43: 
        !            44: /*
        !            45:  * DMA descriptor structure.
        !            46:  */
        !            47: typedef struct dma_desc {
        !            48:     u_int              size;
        !            49:     vm_address_t       mem;
        !            50:     queue_chain_t      link;
        !            51: } dma_desc_t;
        !            52:     
        !            53: @interface AudioChannel: Object
        !            54: {
        !            55:     id                         audioDevice;
        !            56:     id                         streamClass;
        !            57:     id                         streamList;
        !            58:     id                         streamListLock;
        !            59: 
        !            60:     port_t                     exclusiveUser;
        !            61:     port_t                     userChannelPort;
        !            62:     port_t                     userSndPort;
        !            63: 
        !            64:     BOOL                       _isRead;
        !            65:     
        !            66:     queue_head_t               dmaQueue;
        !            67:     queue_head_t               freeQueue;
        !            68: #ifdef hppa
        !            69:     // These are for the device to handle
        !            70:     queue_head_t               devQueue;
        !            71:     queue_head_t               dfreeQueue;
        !            72: #endif
        !            73:     
        !            74:     u_int                      enqueueCount;
        !            75: 
        !            76:     u_int                      dmaSize;
        !            77:     u_int                      dmaCount;
        !            78:     u_int                      descriptorSize;
        !            79: 
        !            80:     u_int                      localChannel;
        !            81:     void *                     channelBuffer;
        !            82:     
        !            83:     vm_offset_t                        channelBufferPtr;
        !            84:     
        !            85:     boolean_t                  peakEnabled;
        !            86:     u_int                      peakHistory;
        !            87:     u_int                      *peaksLeft;
        !            88:     u_int                      *peaksRight;
        !            89:     u_int                      currentPeak;
        !            90:     u_int                      clipCount;
        !            91: }
        !            92: 
        !            93: + addStream:stream;
        !            94: + streamForUserPort:(port_t)port;
        !            95: + streamForOwnerPort:(port_t)port;
        !            96: 
        !            97: - initOnDevice: device read: (BOOL)isRead;
        !            98: - free;
        !            99: 
        !           100: - (u_int) descriptorSize;
        !           101: - (u_int) setDescriptorSize:(u_int)size;
        !           102: 
        !           103: - (u_int) dmaSize;
        !           104: - (void)setDMASize: (u_int)count;
        !           105: 
        !           106: - (u_int)dmaCount;
        !           107: 
        !           108: - (u_int)enqueueCount;
        !           109: 
        !           110: - (BOOL) createChannelBuffer;
        !           111: - (void) destroyChannelBuffer;
        !           112: 
        !           113: - (void *) channelBuffer;
        !           114: - (vm_address_t) channelBufferAddress;
        !           115: 
        !           116: - (BOOL) enqueueDescriptor: (u_int *) rate
        !           117:        dataFormat: (IOAudioDataFormat *) format
        !           118:        channelCount: (u_int *) count;
        !           119: 
        !           120: - (void) dequeueDescriptor;
        !           121: 
        !           122: - (void) freeDescriptors;
        !           123: - (void) setLocalChannel: (u_int) channel;
        !           124: - (u_int) localChannel;
        !           125: 
        !           126: - (BOOL) isRead;
        !           127: - setUserChannelPort:(port_t)port;
        !           128: - (port_t)userChannelPort;
        !           129: 
        !           130: - setUserSndPort:(port_t)port;
        !           131: - (port_t)userSndPort;
        !           132: 
        !           133: - (port_t)streamUserForOwnerPort:(port_t)port;
        !           134: - removeSndStreams;
        !           135: 
        !           136: - (void)setExclusiveUser:(port_t)streamPort;
        !           137: - (port_t)exclusiveUser;
        !           138: 
        !           139: - (BOOL)checkOwner:(port_t)owner;
        !           140: 
        !           141: - (BOOL)addStreamTag:(int)tag user:(port_t *)userPort
        !           142:       owner:(port_t)owner type:(u_int)type;
        !           143: - (void)removeStream:stream;
        !           144: - streamClass;
        !           145: - (u_int)streamCount;
        !           146: 
        !           147: - (BOOL)isDetectingPeaks;
        !           148: - (void)setDetectPeaks:(BOOL)flag;
        !           149: - (void)getPeakLeft:(u_int *)leftPeak right:(u_int *)rightPeak;
        !           150: 
        !           151: - (void)controlStreams:(ACStreamControl)action;
        !           152: 
        !           153: - (u_int)clipCount;
        !           154: - incrementClipCount:(u_int)count;
        !           155: 
        !           156: - audioDevice;
        !           157: - (void) initializeFreeQueue;
        !           158: #ifdef hppa
        !           159: - (void) initializeDFreeQueue;
        !           160: - (vm_offset_t) getDevDmaAddress;
        !           161: #endif
        !           162: 
        !           163: @end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.