Annotation of driverkit/libDriver/Kernel/AudioChannel.h, revision 1.1.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.