Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC
Abbiamo provato la Gigabyte Radeon RX 9070 GRE Gaming OC, nuova proposta RDNA 4 che si inserisce tra GeForce RTX 5060 Ti e RTX 5070. Prestazioni solide in rasterizzazione e ray tracing, frequenze elevate grazie all'overclock di fabbrica e raffreddamento efficace: ecco come si comporta nei nostri test.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-10-2009, 23:12   #1
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
Usare un diff

dunque...io ho questo diff...

come faccio a farlo funzionare correttamente?

Codice:
diff –git a/Classes/Radio.h b/Classes/Radio.h
index 32f6b4a..5a358f7 100644
— a/Classes/Radio.h
+++ b/Classes/Radio.h
@@ -63,6 +63,9 @@ typedef struct {
UIAlertView *alert;
iPhoneRadioAppDelegate *appDelegate;
AQPlayerState audioState;
+
+	BOOL ICECast; //true when IceCast Stream, false for ShoutCast
+
}

-(id)init;
diff –git a/Classes/Radio.m b/Classes/Radio.m
index f661960..9f9b319 100644
— a/Classes/Radio.m
+++ b/Classes/Radio.m
@@ -341,12 +341,72 @@ void interruptionListenerCallback (void	*inUserData, UInt32 interruptionState) {
}
}

+//
+// Added By Sébastien Stormacq
+// ShoutCast support
+//
+
+-(int)parseShoutCastHeaders:(NSData*)buffer {
+
+	streamHeaders = [[NSMutableDictionary alloc] init];
+
+	NSString* rawHeader = [[NSString alloc] initWithData:buffer encoding:NSASCIIStringEncoding];
+	NSString* DELIMITER = @”\r\n”;
+	NSString* END_OF_HEADER_DELIMITER = @”\r\n\r\n”;
+
+	NSArray* lines = [rawHeader componentsSeparatedByString:DELIMITER];
+	for(NSString* line in lines) {
+	 //NSLog(@”line = %@”, line);
+
+	 //did we reach the last line ?
+	 if ([line isEqualToString:@""])
+	 break;
+	 else {
+
+	 NSRange range = [line rangeOfString:@":"];
+	 if (range.location != NSNotFound) {
+	 NSString* key = [line substringToIndex:range.location];
+	 NSString* value = [line substringFromIndex:range.location+1];
+
+	 [streamHeaders setValue:value forKey:key];
+	 }
+	 }
+	}
+
+	int result = [rawHeader rangeOfString:END_OF_HEADER_DELIMITER].location + [END_OF_HEADER_DELIMITER length];
+
+	NSLog(@”ICECAST Headers = %@”, streamHeaders);
+	NSLog(@”ICECAST startOfData = %d”, result);
+
+	[rawHeader release];
+
+	return result;
+}
+//
+// end of addition
+//
+
+#pragma mark NSURLConnection callBacks
+
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSHTTPURLResponse *u = (NSHTTPURLResponse *)response;
NSLog(@”HTTP Response = %u”, [u statusCode]);
-
-	streamHeaders = [u allHeaderFields];
- [streamHeaders retain];
+
+	//
+	// Modified By Sébastien Stormacq
+	// ShoutCast support
+	//
+	if ([[u allHeaderFields] objectForKey:@”Ice-Audio-Info”] != nil) {
+	 ICECast = YES;
+	 streamHeaders = [u allHeaderFields];
+	 [streamHeaders retain];
+	} else {
+	 //likely a shout cast stream
+	 ICECast = NO;
+	}
+	//
+	// end of modifications
+	//

NSLog(@”HTTP Response Headers = %@”, streamHeaders);
}
@@ -355,14 +415,42 @@ void interruptionListenerCallback (void	*inUserData, UInt32 interruptionState) {
//	NSLog(@”didReceiveData %u bytes”, [data length]);
int length = [data length];
const char *bytes = (const char *)[data bytes];
+
+	int positionOfFirstData;
+
if (!icyInterval) {
-	 icyInterval = [[streamHeaders objectForKey:@"Icy-Metaint"] intValue];
+
+	 if (ICECast) {
+	 icyInterval = [[streamHeaders objectForKey:@"Icy-Metaint"] intValue];
+
+	 //
+	 // Added By Sébastien Stormacq
+	 // ShoutCast support
+	 //
+	 } else {
+	 //parse first bytes until empty line to read ShoutCast headers
+	 positionOfFirstData = [self parseShoutCastHeaders:data];
+	 icyInterval = [[streamHeaders objectForKey:@"icy-metaint"] intValue];
+
+	 //for ICECast, remove the text header from first data block
+	 NSRange range;
+	 range.location = positionOfFirstData;
+	 range.length = [data length] – positionOfFirstData;
+	 //NSLog(@”range = %d, %d”, range.location, range.length);
+
+	 NSData* subData = [data subdataWithRange:range];
+	 length = [subData length];
+	 bytes = (const char *)[subData bytes];
+	 //NSLog(@”Pruned Data %u bytes\n—\n%@\n—”, length, [NSString stringWithCString:bytes length:length]);
+	 }
+	 //
+	 // End of additions
+	 //
+
NSLog(@”ICY INTERVAL = %u”, icyInterval);
-	 [self fillcurrentPacket:bytes withLength:length];
-	}
-	else {
-	 [self fillcurrentPacket:bytes withLength:length];
}
+
+	[self fillcurrentPacket:bytes withLength:length];
}

-(void)reconnect {
diff –git a/Classes/iPhoneRadioAppDelegate.m b/Classes/iPhoneRadioAppDelegate.m
index 2c4dd35..2eba747 100644
— a/Classes/iPhoneRadioAppDelegate.m
+++ b/Classes/iPhoneRadioAppDelegate.m
@@ -54,7 +54,9 @@
[window makeKeyAndVisible];

radio = [[Radio alloc] init];
-	[radio connect:@"http://stream.radiojavan.com/radiojavan" withDelegate:self withGain:(0.5)];
+	//[radio connect:@"http://stream.radiojavan.com/radiojavan" withDelegate:self withGain:(0.5)];
+	 [radio connect:@"http://stream.radiovazogasy.com:8001" withDelegate:self withGain:(0.5)];
+
}


è per modificare il codice di un'applicazione per iphone

grazie mille
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2009, 08:14   #2
sacarde
Senior Member
 
Iscritto dal: Apr 2004
Messaggi: 9516
http://digilander.libero.it/uzappi/L...x-patches.html
sacarde è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2009, 22:43   #3
Janky
Senior Member
 
L'Avatar di Janky
 
Iscritto dal: Feb 2004
Città: Lecco/Milano
Messaggi: 2863
ok.. mettiamo che io ho sul Desktop la cartella a/Classes, con all'interno tutti i vari file da patchare...

devo creare una cartella b/Classes o la crea lui in automatico??

ho provato a crearla io stesso e ho lanciato il comando, questo è l'output:

Codice:
missing header for unified diff at line 5 of patch
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff –git a/Classes/Radio.h b/Classes/Radio.h
|index 32f6b4a..5a358f7 100644
|— a/Classes/Radio.h
|+++ b/Classes/Radio.h
--------------------------
File to patch:
e si blocca quindi aspettando che gli passo il file da patchare, ho inserito quindi

Codice:
/Users/janky/Desktop/a/Classes/Radio.h
però ricevo sto errore:

Codice:
patching file /Users/janky/Desktop/a/Classes/Radio.h
patch: **** malformed patch at line 14: diff –git a/Classes/Radio.m b/Classes/Radio.m
è sbagliato il diff o sbaglio io qualcosa?

grazie!
__________________
C'era un moscerino sul tuo schermo
Janky è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2009, 13:14   #4
sacarde
Senior Member
 
Iscritto dal: Apr 2004
Messaggi: 9516
prova a eseguirlo da dentro: /Users/janky/Desktop
sacarde è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Recensione Vivo X300 Ultra: fotocamera eccezionale, ma prezzo proibitivo Recensione Vivo X300 Ultra: fotocamera ecceziona...
Addio ai cavi in auto: questo adattatore...
Polaroid Go Generation 3 è la nuo...
Virgin Galactic torna a far volare lo sp...
La sonda spaziale marziana NASA MAVEN &e...
Nucleare in Italia, approvata la legge d...
Surface Pro, nuova variante in arrivo: a...
Iliad lancia la sua prima offerta FWA pe...
Addio compromessi? I nuovi tablet rugged...
Cooler Master al Computex 2026: case sil...
G.Skill mostra AMD EXPO ULL al Computex:...
Hilti e i data center, l'ingegneria dell...
Narwal anticipa il Prime Day: sconti fin...
Sharkoon mantiene il rapporto qualit&agr...
Xference e Aruba insieme per l'IA privat...
Google Wallet, in arrivo i documenti d'i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:39.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v