📄 qsdlwidget.cpp
字号:
*/
char* QSDLWidget::RetFilePosition()
{
return RetMDDEMO(SelectPort)->filename;
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
int QSDLWidget::RetSoundPort()
{
return playSoundPort;
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
int QSDLWidget::PlaySound()
{
int ret = -1;
if(playSoundPort == SelectPort)
return 0;
if(playSoundPort == -1)
{
ret = HW_PlaySound(RetMDDEMO(SelectPort)->ChannelHandle);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
ret = HW_SetVolume(RetMDDEMO(SelectPort)->ChannelHandle, 0xffff);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
ret = HW_SetAudioPreview(RetMDDEMO(SelectPort)->ChannelHandle, 1);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
playSoundPort = SelectPort;
return 0;
}
ret = HW_SetAudioPreview(RetMDDEMO(playSoundPort)->ChannelHandle, 0);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
HW_StopSound(RetMDDEMO(playSoundPort)->ChannelHandle);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
HW_PlaySound(RetMDDEMO(SelectPort)->ChannelHandle);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
HW_SetAudioPreview(RetMDDEMO(SelectPort)->ChannelHandle, 1);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
playSoundPort = SelectPort;
return 0;
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
int QSDLWidget::StopSound()
{
int ret = -1;
ret = HW_SetAudioPreview(RetMDDEMO(playSoundPort)->ChannelHandle, 0);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
ret = HW_StopSound(RetMDDEMO(playSoundPort)->ChannelHandle);
if(ret < 0)
{
fprintf(stderr, "sorry, SetAudioPreview failed\n");
return -1;
}
playSoundPort = -1;
return 0;
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
void QSDLWidget::StringtoChar(const QString& aFile, char* cstr)
{
int m = aFile.length();
QChar da;
int k;
for(k = 0; k < m; k++)
{
da = aFile.at(k);
cstr[k] = da.latin1();
}
cstr[m] = '\0';
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
void QSDLWidget::IPChange(const QString& ipaddress)
{
int k;
if(sameSetting)
{
for(k = 0; k < totalport; k++)
{
StringtoChar(ipaddress, RetMDDEMO(k)->serverip);
OutputDebugString(RetMDDEMO(k)->serverip);
OutputDebugString("\n");
}
}
else
{
StringtoChar(ipaddress, RetMDDEMO(SelectPort)->serverip);
OutputDebugString(RetMDDEMO(SelectPort)->serverip);
OutputDebugString("\n");
}
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
void QSDLWidget::ServerChanSet(int chan)
{
int k;
if(sameSetting)
{
for(k = 0; k < totalport; k++)
{
RetMDDEMO(k)->serverchan = chan;
OutputDebugString("Channel %2d Change Serverchan to %d\n", k, RetMDDEMO(k)->serverchan);
}
}
else
{
RetMDDEMO(SelectPort)->serverchan = chan;
OutputDebugString("Channel %2d Change Serverchan to %d\n", SelectPort,
RetMDDEMO(SelectPort)->serverchan);
}
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
void QSDLWidget::FileOpen(const QString& aFile)
{
OutputDebugString("here is in function QSDLWidget::FileOpen\n");
int k;
FileName = aFile;
if(sameSetting)
{
for(k = 0; k < totalport; k++)
{
StringtoChar(aFile, RetMDDEMO(k)->filename);
OutputDebugString("*******Open File %s\n", RetMDDEMO(k)->filename);
if(RetMDDEMO(k)->bDisplayOpen)
mddemoclass[k]->StopPlay();
timer[k]->start(200);
time[k]->restart();
mddemoclass[k]->StartFilePlay();
}
#ifdef circle
sameSetting = 0; /* 临时加上 */
#endif
}
else
{
OutputDebugString("here sameSetting = 0 \n");
StringtoChar(aFile, RetMDDEMO(SelectPort)->filename);
OutputDebugString(RetMDDEMO(SelectPort)->filename);
OutputDebugString("\n");
if(RetMDDEMO(SelectPort)->bDisplayOpen)
mddemoclass[SelectPort]->StopPlay();
OutputDebugString("before StartFilePlay\n");
timer[SelectPort]->start(200);
time[SelectPort]->restart();
mddemoclass[SelectPort]->StartFilePlay();
}
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
void QSDLWidget::FileStreamClose(int style)
{
int k;
if(sameSetting)
{
for(k = 0; k < totalport; k++)
{
if(RetMDDEMO(k)->bDisplayOpen && (RetMDDEMO(k)->playType == style))
{
mddemoclass[k]->StopPlay();
timer[k]->stop();
emit RateChange(k, 0);
emit FrameChange(k, 0);
}
}
}
else
{
if(RetMDDEMO(SelectPort)->bDisplayOpen && (RetMDDEMO(SelectPort)->playType == style))
{
mddemoclass[SelectPort]->StopPlay();
timer[SelectPort]->stop();
emit RateChange(SelectPort, 0);
emit FrameChange(SelectPort, 0);
}
}
for(k = 0; k < totalport; k++)
{
if(RetMDDEMO(k)->playType == DECODESTREAM)
break;
}
if(RunStream == 1 && (k == 9))
{
RunStream = 0;
MP4_ClientCleanup();
}
OutputDebugString("<demo_info> file close\n");
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
void QSDLWidget::ReadDataCallBack(int StockHandle, char* pPacketBuffer, int nPacketSize)
{
int temp, port;
for(temp = 0; temp < totalport; temp++)
{
if(!RetMDDEMO(temp))
return;
if(RetMDDEMO(temp)->clienthandle == StockHandle)
break;
}
port = temp;
RetMDDEMO(port)->datasum += nPacketSize;
if(RetMDDEMO(port)->playType)
{
if(HW_InputData(RetMDDEMO(port)->ChannelHandle, pPacketBuffer, nPacketSize) < 0)
{
OutputErrorString("<demo_info> input data error:0x%x, port%d, Channel%d\n",
GetLastErrorNum(), port, RetMDDEMO(port)->ChannelHandle);
}
}
}
/*
=======================================================================================================================
*
=======================================================================================================================
*/
int QSDLWidget::OpenStream()
{
int temp;
int retval;
CLIENTSHOWRECT clientrect;
memset(&clientrect, 0x0, sizeof(CLIENTSHOWRECT));
CLIENT_VIDEOINFO Clientinfo;
char streamheader[128];
int header_len;
/* init the net client connect */
MP4_ClientSetNetPort(5050, 6050);
MP4_SetDecoder(0); /* disable the client sdk to decode stream */
retval = MP4_ClientStartup(clientrect, NULL);
OutputDebugString("ClientStartup successful, retval = %d, uWidth = %d, uHeight = %d\n", retval,
clientrect.uWidth, clientrect.uHeight);
Clientinfo.m_bRight = 0;
Clientinfo.m_sUserName = "username1234567890";
Clientinfo.m_sUserPassword = "userpassword1234567890";
Clientinfo.m_bUserCheck = 0;
Clientinfo.subshow_x = 0;
Clientinfo.subshow_y = 0;
Clientinfo.subshow_uWidth = 0;
Clientinfo.subshow_uHeight = 0;
Clientinfo.m_bSendMode = PTOPTCPMODE;
if(sameSetting)
{
for(temp = 0; temp < totalport; temp++)
{
if(RetMDDEMO(temp)->bDisplayOpen)
mddemoclass[temp]->StopPlay();
Clientinfo.m_bRemoteChannel = RetMDDEMO(temp)->serverchan;
/*
* strcpy(Clientinfo.m_sIPAddress, RetMDDEMO(i)->serverip);
*/
Clientinfo.m_sIPAddress = RetMDDEMO(temp)->serverip;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -