Ciao a tutti, ho un problema con il settaggio della posizione del mouse. Nello specifico sto creando un'applicazione client/server attraverso Bonjour per comandare il mouse del Mac attraverso l'iPhone.
Ora, con le connessioni sono ok, il tutto funziona alla perfezione, riesco ad effettuare la connessione e a scambiare dati tra i 2 ma sto sbagliando qualcosa nella funzione per muovere il mouse attraverso il touchpad dell'iPhone.
Ho pensato di rilevare la distanza tra i punti del touchpad dell'iPhone e passarla al server installato sul Mac, in modo da sommarla alla posizione del mouse sullo schermo... Sto sbagliando sicuramente l'algoritmo, in quanto sfarfalla proprio. Vi posto qualche porzione di codice, grazie per l'aiuto!
iPhone (locationBegan è la posizione dell'event touchesBegan, _connect si riferisce alla classe che comunica col socket)
OS Xcodice:- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { CGPoint location = [[touches anyObject] locationInView:nil]; CGFloat locationX = (location.x - locationBegan.x); CGFloat locationY = (location.y - locationBegan.y); CGPoint distance = CGPointMake(locationX, locationY); [_connect mouseReceived:&distance]; }
codice:- (void)socket:(GCDAsyncSocket *)aSocket didReadData:(NSData *)data withTag:(long)tag { [aSocket readDataWithTimeout:-1.0 tag:0]; CGPoint dataReaded = *(CGPoint*)[data bytes]; CGPoint mouseLoc = [NSEvent mouseLocation]; CGPoint newPosition = CGPointMake((mouseLoc.x+dataReaded.x), (mouseLoc.y+dataReaded.y)); CGWarpMouseCursorPosition(newPosition); CGAssociateMouseAndMouseCursorPosition(true); }

. Vi posto qualche porzione di codice, grazie per l'aiuto!
Rispondi quotando