#import "../CCNMediaTerm/CCNSMT/CCNSMT.tlb" no_namespace, raw_interfaces_only #include int altavoz = 50; int micro = 50; int puerto = 6666; BSTR direccionSOS; char * sos; DWORD WINAPI controladorIn (LPVOID args) { HRESULT hr = CoInitialize(NULL); ICCNMediaTermPtr pICCNMediaTerm(__uuidof(CCNMediaTerm)); pICCNMediaTerm->Initialize(); // Conexio pICCNMediaTerm->SetAudioCodecRX(2, 20, 0, 0); pICCNMediaTerm->SetAudioReceivePort(puerto); pICCNMediaTerm->SetAudioCodecTX(2, 20, 0, 0, 0, 0); pICCNMediaTerm->SetAudioDestination(direccionSOS, 6666); //pICCNMediaTerm->SetAudioDestination(L"172.16.56.51", 6666); pICCNMediaTerm->StartRX(-1); pICCNMediaTerm->StartTX(-1); pICCNMediaTerm->SetSpeakerVolume(-1, altavoz); pICCNMediaTerm->SetMicrophoneVolume(-1, micro); //char mensaje[1024]; //sprintf(mensaje, "%s %s %d %d %d\n",sos, direccionSOS, puerto, altavoz, micro); //MessageBox(NULL, mensaje, NULL, 0); //MessageBox(NULL, (LPCSTR)direccionSOS, NULL, 0); char comando[1024]; while (true) { //MessageBox(NULL, "Controlador", NULL, 0); fscanf (stdin, "%s",comando); //MessageBox(NULL, comando, NULL, 0); if (strcmp(comando, "pause") == 0) { pICCNMediaTerm->StopRX(); pICCNMediaTerm->StopTX(); } else if (strcmp(comando, "resume") == 0) { pICCNMediaTerm->StartRX(-1); pICCNMediaTerm->StartTX(-1); } else if (strcmp(comando, "StartRX") == 0) { pICCNMediaTerm->StartRX(-1); } else if (strcmp(comando, "StopRX") == 0) { pICCNMediaTerm->StopRX(); } else if (strcmp(comando, "StartTX") == 0) { pICCNMediaTerm->StartTX(-1); } else if (strcmp(comando, "StopTX") == 0) { pICCNMediaTerm->StopTX(); } else if (strcmp(comando, "SetSpeakerVolume") == 0) { fscanf (stdin, "%d",&altavoz); pICCNMediaTerm->SetSpeakerVolume(-1, altavoz); } else if (strcmp(comando, "SetMicrophoneVolume") == 0) { fscanf (stdin, "%d",µ); pICCNMediaTerm->SetMicrophoneVolume(-1, micro); } else if ((strcmp(comando, "close") == 0) || (strcmp(comando, "stop") == 0)) { // Desconexion pICCNMediaTerm->StopRX(); pICCNMediaTerm->StopTX(); pICCNMediaTerm->UnInitialize(); pICCNMediaTerm = 0; CoUninitialize(); exit(0); } else if (strcmp(comando, "GetSpeakerVolume") == 0) { fprintf(stdout, "%d\r", altavoz); fflush(stdout); } else if (strcmp(comando, "GetMicrophoneVolume") == 0) { fprintf(stdout, "%d\r", micro); fflush(stdout); } } return 0; } int main(int argc, char * argv[]) { altavoz = atoi(argv[1]); micro = atoi(argv[2]); puerto = atoi(argv[3]); sos = argv[4]; #ifndef _UNICODE OLECHAR* oleChar = NULL; oleChar = (OLECHAR*)calloc(strlen(sos)+1, sizeof(OLECHAR)); MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, sos, -1, oleChar, strlen(sos)+1); direccionSOS = SysAllocString(oleChar); free(oleChar); oleChar = NULL; #else direccionSOS = SysAllocString(sos); #endif // Control DWORD threadId; CreateThread( NULL, 0, controladorIn, NULL, 0, &threadId); while (true) { Sleep(60000); } return 0; }