Exemplo n.º 1
0
static void OpenAllDevice_Dsp(DJ_S8 s8DspModID)
{
  int i;  
  RetCode_t ret;
  DeviceID_t dev;
  
  list *current = NULL;
    
  /*add lock lock pcmlist*/
  current = g_pPcmFirst;
  if (current == NULL)
    if (ldebug_flag)
      printstr(NULL,"g_pPcmFirst=NULL\n");    
  
  while(current != NULL)
  {
    for (i = 0; i < current->m_lDevNum; i++)
    {     
      dev = current->entry[i].m_dev;
      if (ldebug_flag)
        printstr(NULL,"open dev(main=%d,sub=%d,%d, %d)\n", dev.m_s16DeviceMain, dev.m_s16DeviceSub,
               dev.m_s8ModuleID, dev.m_s16ChannelID);
      ret = XMS_ctsOpenDevice(g_acsHandle, &dev, NULL );
      if (ret < 0)
      {
        if (ldebug_flag)
        {
          printstr(NULL,"open devType(%d,%d) dev(%d %d) callID(%d,%d)\n ", dev.m_s16DeviceMain,
                 dev.m_s16DeviceSub, dev.m_s8ModuleID, dev.m_s16ChannelID); 
          printstr(NULL,"pcm XMS_ctsOpenDevice Fail. ret=%d\n", ret);
        }
      }       
    }
        
    current = current->next;      
  }
  /*leave lock*/
  
  /*add lock lock Linklist*/
  current = g_pLinkFirst;
  while(current != NULL)
  {
    for (i = 0; i < current->m_lDevNum; i++)
    {
      dev = current->entry[i].m_dev;
      ret = XMS_ctsOpenDevice(g_acsHandle, &dev, NULL);
      if (ret < 0)
      {
        if (ldebug_flag)
        {
          printstr(NULL,"open devType(%d,%d) dev(%d %d) callID(%d,%d): ", dev.m_s16DeviceMain,
                 dev.m_s16DeviceSub, dev.m_s8ModuleID, dev.m_s16ChannelID); 
          printstr(NULL,"XMS_ctsOpenDevice Fail. ret=%d\n", ret);
        }         
      }     
    }
    current = current->next;
  }
  /*leave lock*/
}
Exemplo n.º 2
0
//*****************************************************************************
//Name        : OpenDevice
//Author      : None
//Description : Open all HiZ device, close these device in function:CloseDevice
//Input       : None
//Output      : None
//Return      : None
//*****************************************************************************
DJ_Void  OpenDevice()
{
	for (int i = 0; i < g_TotalDevRes; i++)
	{
		if (IsHizDevice(i))
		{
			XMS_ctsOpenDevice(g_acsHandle, &g_pDevRes[i].DevID, NULL);
		}
	}
}
Exemplo n.º 3
0
void OpenInterfaceDevice(INTERFACE_STRUCT *pOneTrunk)
{
	RetCode_t   r;	

	_ASSERT(pOneTrunk != NULL);
	
	r = XMS_ctsOpenDevice(g_acsHandle, &pOneTrunk->deviceID, NULL);
	if (r<0)
	{
		//AddMsg
	}
	return;
}
Exemplo n.º 4
0
void	OpenPcmDevice ( PCM_STRUCT *pOnePcm )
{
	RetCode_t	r;
	char        TmpStr[500] = {0};
	
	r = XMS_ctsOpenDevice ( g_acsHandle, &pOnePcm->deviceID, NULL );
	if ( r < 0 )
	{
		sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenPcmDevice()! ret=%d", r);
		AddMsg ( TmpStr );
		WriteMsgLog(TmpStr);
	}
}
Exemplo n.º 5
0
void	OpenBoardDevice ( DeviceID_t *pBoardDevID )
{
	RetCode_t	r;
	char        TmpStr[500] = {0};

	r = XMS_ctsOpenDevice ( g_acsHandle, pBoardDevID, NULL );

	if ( r < 0 )
	{
		sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenBoardDevice()! ret=%d", r);
		AddMsg (TmpStr);
		WriteMsgLog(TmpStr);
	}
}
Exemplo n.º 6
0
void	OpenVoiceDevice ( VOICE_STRUCT *pOneVoice )
{
	RetCode_t	r;
	char        TmpStr[500] = {0};
	
	pOneVoice->State= VOC_WAITOPEN;

	r = XMS_ctsOpenDevice ( g_acsHandle, &pOneVoice->deviceID, NULL );
	if ( r < 0 )
	{
		sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenVoiceDevice()! ret=%d", r);
		AddMsg (TmpStr);
		WriteMsgLog(TmpStr);
	}
}
Exemplo n.º 7
0
// --------------------------------------------------------------------------------
void	OpenTrunkDevice ( TRUNK_STRUCT *pOneTrunk )
{
	RetCode_t	r;
	char        TmpStr[500] = {0};
	
	pOneTrunk->State= TRK_WAITOPEN;

	r = XMS_ctsOpenDevice ( g_acsHandle, &pOneTrunk->deviceID, NULL );
	if ( r < 0 )
	{
		sprintf(TmpStr, "XMS_ctsOpenDevice Fail in OpenTrunkDevice()! ret=%d", r);
		AddMsg (TmpStr);
		WriteMsgLog(TmpStr);
	}
}
Exemplo n.º 8
0
DJ_Void EvtHandler(DJ_U32 esrParam){
	Acs_Evt_t *			    pAcsEvt = NULL;
	Acs_Dev_List_Head_t *	pAcsDevList = NULL;
	DJ_S8					s8DspModID;
	DJ_S32					s32Num;
	pAcsEvt = (Acs_Evt_t *) esrParam;
	VOICE_STRUCT *			pOneVoice;
	TRUNK_STRUCT *			pOneTrunk;
	char					TmpStr[256];
	Acs_GeneralProc_Data *pGeneralData = NULL;	

	switch ( pAcsEvt->m_s32EventType )
	{
	case XMS_EVT_QUERY_DEVICE:		
		{
			pAcsDevList = ( Acs_Dev_List_Head_t *) FetchEventData(pAcsEvt);	
			s8DspModID = (DJ_S8) pAcsDevList->m_s32ModuleID;
			s32Num =  pAcsDevList->m_s32DeviceNum;
			if (s8DspModID == cfg_iPartWorkModuleID)
			{
				switch (pAcsDevList->m_s32DeviceMain)
				{
				case XMS_DEVMAIN_VOICE:	
					if ( (AllDeviceRes[s8DspModID].lVocNum == 0) && (s32Num > 0) )		//  the resources new added
					{
						AllDeviceRes[s8DspModID].pVoice = new VOICE_STRUCT[s32Num];
						if( AllDeviceRes[s8DspModID].pVoice )
						{
							AllDeviceRes[s8DspModID].lVocNum = s32Num;
							AllDeviceRes[s8DspModID].lVocOpened = 0;
							AllDeviceRes[s8DspModID].lVocFreeNum = 0;
							memset ( AllDeviceRes[s8DspModID].pVoice, 0, sizeof(VOICE_STRUCT)*s32Num );
							
							DeviceID_t	 *pDev;
							pDev = (DeviceID_t *)((BYTE *)pAcsDevList + sizeof(Acs_Dev_List_Head_t));
							
							for ( int i = 0; i < s32Num; i ++ )
							{
								AllDeviceRes[s8DspModID].pVoice[i].deviceID = pDev[i];
								AllDeviceRes[s8DspModID].pVoice[i].State = VOC_WAITOPEN;
							}
						}
					}
					break;
				case XMS_DEVMAIN_INTERFACE_CH:
					if ( (AllDeviceRes[s8DspModID].lTrunkNum == 0) && (s32Num > 0) )		//  the resources new added
					{
						AllDeviceRes[s8DspModID].pTrunk = new TRUNK_STRUCT[s32Num];
						if( AllDeviceRes[s8DspModID].pTrunk )
						{
							AllDeviceRes[s8DspModID].lTrunkNum = s32Num;
							AllDeviceRes[s8DspModID].lTrunkOpened = 0;
							memset ( AllDeviceRes[s8DspModID].pTrunk, 0, sizeof(TRUNK_STRUCT)*s32Num );
							
							DeviceID_t	 *pDev;
							
							pDev = (DeviceID_t *)((BYTE *)pAcsDevList + sizeof(Acs_Dev_List_Head_t));
							
							for (int i = 0; i < s32Num; i ++ )
							{
								AllDeviceRes[s8DspModID].pTrunk[i].deviceID = pDev[i];
								AllDeviceRes[s8DspModID].pTrunk[i].State = TRK_WAITOPEN;
							}
						}
					}					
					break;
				}

			}
			
		}
		break; 
	case XMS_EVT_QUERY_ONE_DSP_END:	//一个DSP上的资源搜索完毕,打开应用需要的设备
		if (pAcsEvt->m_DeviceID.m_s8ModuleID == cfg_iPartWorkModuleID)
		{
			AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].lFlag = 1;		// this DSP can use
			s8DspModID = (DJ_S8) pAcsEvt->m_DeviceID.m_s8ModuleID;
			// pVoice
			for ( int i = 0; i < AllDeviceRes[s8DspModID].lVocNum; i++ )
			{
				pOneVoice = &AllDeviceRes[s8DspModID].pVoice[i];			
				if ( pOneVoice->State == VOC_WAITOPEN )		// not Open yet
				{
					if ( XMS_ctsOpenDevice ( g_acsHandle, &pOneVoice->deviceID, NULL ) < 0 )
					{
						MessageBox(NULL, "Voice open fail!", "XMS_ctsOpenDevice", MB_OK ) ;
					}
				}
			}
						
			// pTrunk
			pdlg->m_ListTrunk.DeleteAllItems ();
			for ( int j = 0; j < AllDeviceRes[s8DspModID].lTrunkNum; j++ )
			{
				pOneTrunk = &AllDeviceRes[s8DspModID].pTrunk[j];
				pOneTrunk->iSeqID = j;
				if ( pOneTrunk->State == TRK_WAITOPEN )		// not Open yet
				{
					if ( XMS_ctsOpenDevice ( g_acsHandle, &pOneTrunk->deviceID, NULL ) < 0 )
					{
						MessageBox(NULL, "Trunk open fail!", "XMS_ctsOpenDevice", MB_OK ) ;
					}
				}
			
				//界面显示中继信息
				sprintf ( TmpStr, "%3d", j );
				pdlg->m_ListTrunk.InsertItem ( j, TmpStr );
				
				sprintf ( TmpStr, "%d,%d", pOneTrunk->deviceID.m_s8ModuleID, pOneTrunk->deviceID.m_s16ChannelID );
				pdlg->m_ListTrunk.SetItemText ( j, 1, TmpStr );	
				
				pdlg->m_ListTrunk.SetItemText ( j, 2, GetString_DeviceSub( pOneTrunk->deviceID.m_s16DeviceSub) );
				
				pdlg->m_ListTrunk.SetItemText ( j, 3, GetString_LineState(pOneTrunk->iLineState) ); 
			}
			
		}
		break;
	case XMS_EVT_QUERY_REMOVE_ONE_DSP_END:		
		break;		
	case XMS_EVT_QUERY_DEVICE_END:	// Query Device List End
		break;		
	case XMS_EVT_OPEN_DEVICE:
		OpenDeviceOK(&pAcsEvt->m_DeviceID );
		break;		
	case XMS_EVT_CLOSE_DEVICE:		// before Delete DSP, DSP send event CloseDevice to the APP; call XMS_ctsCloseDevicey() can generate this Event
		break;		
	case XMS_EVT_DEVICESTATE:
			
		pGeneralData = (Acs_GeneralProc_Data *)FetchEventData(pAcsEvt);
		
		if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH )
		{
			pOneTrunk = &AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].pTrunk[pAcsEvt->m_DeviceID.m_s16ChannelID];
			pOneTrunk->iLineState = pGeneralData->m_s32DeviceState;
			pdlg->m_ListTrunk.SetItemText ( pOneTrunk->iSeqID, 3, GetString_LineState(pOneTrunk->iLineState) ); 
		}
		break;		
	case XMS_EVT_UNIFAILURE:
		break;		
	default:
		if ( pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH &&
			pAcsEvt->m_DeviceID.m_s16DeviceSub == XMS_DEVSUB_ANALOG_USER)
		{
			pOneTrunk = &AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].pTrunk[pAcsEvt->m_DeviceID.m_s16ChannelID];
			UserWork( pOneTrunk, pAcsEvt );
		}else if (pAcsEvt->m_DeviceID.m_s16DeviceMain == XMS_DEVMAIN_VOICE)
		{	
			DeviceID_t	*pDevID;
			pOneVoice = &AllDeviceRes[pAcsEvt->m_DeviceID.m_s8ModuleID].pVoice[pAcsEvt->m_DeviceID.m_s16ChannelID];
			pDevID = &pOneVoice->UsedDevID;
			
			if ( pDevID->m_s16DeviceMain == XMS_DEVMAIN_INTERFACE_CH && pDevID->m_s16DeviceSub == XMS_DEVSUB_ANALOG_USER)
			{
				pOneTrunk = &AllDeviceRes[pDevID->m_s8ModuleID].pTrunk[pDevID->m_s16ChannelID];
				UserWork ( pOneTrunk, pAcsEvt );
			}

		}
		break;
	}
}