00001 #ifndef _PLAYER_H_ 00002 #define _PLAYER_H_ 00003 00004 /* 00005 * Copyright (C) 2003-2007 by egnite Software GmbH. All rights reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions 00009 * are met: 00010 * 00011 * 1. Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * 2. Redistributions in binary form must reproduce the above copyright 00014 * notice, this list of conditions and the following disclaimer in the 00015 * documentation and/or other materials provided with the distribution. 00016 * 3. Neither the name of the copyright holders nor the names of 00017 * contributors may be used to endorse or promote products derived 00018 * from this software without specific prior written permission. 00019 * 00020 * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH AND CONTRIBUTORS 00021 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00022 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00023 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EGNITE 00024 * SOFTWARE GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00025 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00026 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 00027 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 00028 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00029 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 00030 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00031 * SUCH DAMAGE. 00032 * 00033 * For additional information see http://www.ethernut.de/ 00034 */ 00035 00047 #include <sys/socket.h> 00048 #include <hxmp3/mp3dec.h> 00049 #include <hxmp3/hermite.h> 00050 #include "receiver.h" 00051 00052 #define PSTAT_IDLE 0 00053 #define PSTAT_START 1 00054 #define PSTAT_RUNNING 2 00055 #define PSTAT_STOP 3 00056 00060 #define PLAYER_TYPE_MP3 1 00061 00066 typedef struct _PLAYERINFO PLAYERINFO;; 00067 00073 typedef struct _PLAYERPLUGIN { 00074 int (*pp_create) (PLAYERINFO * pip); 00075 int (*pp_setup) (PLAYERINFO * pip); 00076 } PLAYERPLUGIN; 00077 00083 struct _PLAYERINFO { 00091 u_int pi_status; 00096 HANDLE pi_cmdevt; 00102 HANDLE pi_stsevt; 00103 short pi_pcmbuf[MAX_NCHAN * MAX_NGRAN * MAX_NSAMP]; 00104 RECEIVERINFO *pi_rcvr; 00107 PLAYERPLUGIN *pi_ppp; 00112 void *pi_bcast; 00113 }; 00114 00115 __BEGIN_DECLS 00116 /* Prototypes */ 00117 00118 extern PLAYERINFO * PlayerCreate(PLAYERPLUGIN *ppp); 00119 extern int PlayerStart(PLAYERINFO *pip, RECEIVERINFO *rip); 00120 extern int PlayerStop(PLAYERINFO *pip); 00121 extern u_int PlayerStatus(PLAYERINFO *pip); 00122 00123 __END_DECLS 00124 /* End of prototypes */ 00125 #endif
1.4.4