[Q] Hangouts Dialer - HTC EVO 3D

Hello all,
I've run into a strange problem that I cant seem to solve. I have two identical, EVO 3Ds (S-Off (jbear), rooted, and unlocked), that keep throwing up the "Unfortunately, Hangouts has stopped," when ever I try calling somebody/picking up a call with the Hangouts Dialer.
Thinking it may only work in certain ROMs, I tried using CM11 VILLUMINATI, LiquidSmooth 2.0, and even a Stock RUU.
Anybody have any suggestions as to how to get it working?
I've tried clearing the app and system cache, and app data too, but to no avail.
Any help is greatly appreciated. Thank you!

Maybe need to lock bootloader. I know unlocking effect DRM. I was s-off revolutionary never unlocked, no issue with Hangouts dailer

jcfunk said:
Maybe need to lock bootloader. I know unlocking effect DRM. I was s-off revolutionary never unlocked, no issue with Hangouts dailer
Click to expand...
Click to collapse
Just tried locking it on the stock ROM. Still no dice...
I'm thinking it's a ROM issue. What ROM were you using with the dialer?

This ROM with the posted GAPPS did the trick!:
http://forum.xda-developers.com/showthread.php?t=2098121

hangouts dialer quits
I am also having problems with google hangouts dialer on my htc evo 3d now
The funny thing is it worked a few months ago but When I tried to use it today it says hangouts has quit every time I try to dial or open hangouts dialer. I have negalite bluerom 1.21 on this htc evo 3d
I uninstalled and reinstalled but it still does not work
I used it a few months ago for several months with no problems but now it wont work. anyone know why?

customromlover said:
I am also having problems with google hangouts dialer on my htc evo 3d now
The funny thing is it worked a few months ago but When I tried to use it today it says hangouts has quit every time I try to dial or open hangouts dialer. I have negalite bluerom 1.21 on this htc evo 3d
I uninstalled and reinstalled but it still does not work
I used it a few months ago for several months with no problems but now it wont work. anyone know why?
Click to expand...
Click to collapse
Did ya get it going?

PiggyFlooper said:
Did ya get it going?
Click to expand...
Click to collapse
no

customromlover said:
no
Click to expand...
Click to collapse
Try this
https://db.tt/6hVf5JCV

@customromlover
Any luck with dialer?
Also, i have an sqlite script that may help

I have a different phone but similar behavior. Can you tell me what your script does so I can look at the problem from that angle?

jherbold said:
I have a different phone but similar behavior. Can you tell me what your script does so I can look at the problem from that angle?
Click to expand...
Click to collapse
fyi
Good thing I was subscribed to this thread, or wouldn't have gotten your question
Truthfully, and unfortunately I'm not smart enough to explain.
I don't have much time, I'll give you the script I use, sorry I can't do more(like make a flashable zip).
sqlite3 can make changes or create 'stuff' in .db files. I'm not sure how knowledgeable you are(hard to tell from your profile), but maybe you can teach me something. What I've done here is used common sense when adjusting values. A few things were taken from other threads, regarding Hangouts problems.
*If a value doesn't exist in whatever.db, create it with asqlite manager app
#!/system/bin/sh
busybox sleep 20
cd /data/data/com.google.android.gsf/databases;
sqlite3 gservices.db "update main set value = '1728000000' where name = 'vending_sync_frequency_ms' and value = '172800000'"
sqlite3 gservices.db "update main set value = '240000' where name = 'user_location_reporting:max_bind_to_gmm_millis' and value = '60000'"
#these next few values need to be adjusted
# as they're variable
sqlite3 gservices.db "update main set value = '9000' where name = 'fitness.wearable_sync_interval_secs' and value = '900'"
sqlite3 gservices.db "update main set value = '99623' where name = 'checkin_interval' and value = '43094'"
sqlite3 gservices.db "update main set value = '99623' where name = 'checkin_interval' and value = '40686'"
sqlite3 gservices.db "update main set value = '20' where name = 'gtalk_rmq_ack_interval' and value = '10'"
sqlite3 gservices.db "update main set value = '512000' where name = 'mms_maximum_message_size' and value = '307200'"
sqlite3 gservices.db "update main set value = 'false' where name = 'send_action_app_error' and value = 'true'"
sqlite3 gservices.db "update main set value = '3600000' where name = 'gtalk_heartbeat_ping_interval_ms' and value = '1680000'"
sqlite3 gservices.db "update main set value = 'false' where name = 'perform_market_checkin' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet' and value = 'true'"
sqlite3 gservices.db "update main set value = '3600' where name = 'ads:jams:fixed_min_delay_between_requests_mins' and value = '823'"
sqlite3 gservices.db "update main set value = '3600' where name = 'ads:jams:fixed_min_delay_between_requests_mins' and value = '726'"
sqlite3 gservices.db "update main set value = 'false' where name = 'youtube:interaction_logging_enabled' and value = 'true'";
sqlite3 gservices.db "update main set value = 'false' where name='music_enable_track_stats_upsync' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:SYSTEM_RECOVERY_LOG' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'music_enable_play_logging' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet_gcore' and value = 'true'"
sqlite3 gservices.db "update main set value = '7200000' where name = 'finsky.auto_update_wifi_check_interval' and value = '3600000'"
sqlite3 gservices.db "update main set value = '0' where name = 'secure:send_action_app_error' and value = '1'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:event_log' and value = 'true'"
sqlite3 gservices.db "update main set value = '0' where name = 'market_force_checkin' and value = '1'"
sqlite3 gservices.db "update main set value = 'false' where name = 'ozexperiment:enable_silent_feedback_android_after_nacho' and value = 'true'"
sqlite3 gservices.db "update main set value = 'https://www.google.com' where name = 'mobile_transcoder_url' and value = 'http://www.google.com/gwt/n?u=%s'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_fail' and value = 'true'"
sqlite3 gservices.db "update main set value = '0' where name = 'send_action_app_error' and value = '1'"
sqlite3 gservices.db "update main set value = '0' where name = 'gcm_gsf_disable' and value = '1'"
sqlite3 gservices.db "update main set value = '9' where name = 'people.sync_failure_count_to_disable_sync' and value = '99999999'"
sqlite3 gservices.db "update main set value = 'false' where name = 'gms_icing_extension_download_enabled' and value = 'true'"
sqlite3 gservices.db "update main set value = '0' where name = 'maps_enable_friend_finder' and value = '1'"
sqlite3 gservices.db "update main set value = 'false' where name = 'games.enable_metagame' and value = 'true'"
sqlite3 gservices.db "update main set value = '345600' where name = 'people.periodic_sync_interval_sec' and value = '172800'"
sqlite3 gservices.db "update main set value = 'false' where name = 'books:show_hats_surveys' and value = 'true'"
sqlite3 gservices.db "update main set value = '524288' where name = 'appstate.max_state_bytes' and value = '262144'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_optedin_for_usage_reporting' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet_launch_service' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'snet_service_remote_enabled' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_fail' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_success' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_activated' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'analytics.service_enabled' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:SYSTEM_RECOVERY_KMSG' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'music_enable_tracks_upsync' and value = 'true'"
sqlite3 gservices.db "update main set value = '40411101' where name = 'youtube:main:*.*:target_app_version' and value = '60013101'"
sqlite3 gservices.db "update main set value = 'true' where name = 'gtalk_auth_sasl' and value = 'false'"
sqlite3 gservices.db "update main set value = '3456000' where name = 'people.periodic_sync_interval_sec' and value = '345600'"
sqlite3 gservices.db "update main set value = 'true' where name = 'youtube:main:*.*:is_bgol_enabled' and value = 'false'"
sqlite3 gservices.db "update main set value = 'false' where name = 'analytics.dispatch_monitoring' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'user.location.reporting:include_ap_connectivity_auth_info' and value = 'true'"
sqlite3 gservices.db "update main set value = '1' where name = 'games.rtmp_max_reconnect_attempts' and value = '3'"
sqlite3 gservices.db "update overrides set value = '5228' where name = 'gtalk_secure_port' and value = '-1'"
cd /data/data/com.android.providers.settings/databases;
sqlite3 settings.db "update secure set value = '0' where name = 'send_action_app_error' and value = '1'"
sqlite3 settings.db "update system set value = '0' where name = 'power_sounds_enabled' and value = '1'"
sqlite3 settings.db "update system set value = '1' where name = 'smart_wifi_2g_call_netmode' and value = '0'"
If this doesn't change them, use this structure
#!/system/bin/sh
LOG_FILE=/data/sqldb.log;
if [ -e $LOG_FILE ]; then
rm $LOG_FILE;
fi;
echo "$( date +"%m-%d-%Y %H:%M:%S" ) Badass cast tweak started " | tee -a $LOG_FILE;
sqlite=/system/xbin/sqlite3;
cast=true;
RETURN_VALUE=$($sqlite /data/data/com.google.android.gsf/databases/gservices.db "select value from overrides where name='gms:cast:mirroring_enabled'");
echo " Old mirroring value was $RETURN_VALUE " | tee -a $LOG_FILE;
if [ $RETURN_VALUE="" ]; then
$sqlite /data/data/com.google.android.gsf/databases/gservices.db "insert into overrides (gms:cast:mirroring_enabled)";
fi
$sqlite /data/data/com.google.android.gsf/databases/gservices.db "update overrides set value=true='gms:cast:mirroring_enabled'";
RETURN_VALUE=$($sqlite /data/data/com.google.android.gsf/databases/gservices.db "select value from overrides where name='gms:cast:mirroring_enabled'");
echo " Current mirroring value is $RETURN_VALUE " | tee -a $LOG_FILE;
echo "$( date +"%m-%d-%Y %H:%M:%S" ) Badass Cast tweak ended " | tee -a $LOG_FILE;
sleep 7
rm /system/etc/init.d/Mirror
rm -f /system/etc/init.d/Mirror

Thank you very much. I know in my case the Hangouts Dialer is trying to use an invalid audio path. I'll wade through this and see if anything is meaningful.
Thanks again!

Related

[Q] how to restore a deleted application without the usb debug ?

My question is very simple and hopefully the great teachers in this forum can answer.
how to go and change the file in system / build.prop without activating usb debuging?
how to restore all my apps in / system / which have been erased without activating usb debuging?
<< ycusoy | http://admin-belajar.blogspot.com >>
Bonus: text mouse rotate
Code:
<style type="text/css">
/* Circle Text Styles */
#outerCircleText {
/* Optional - DO NOT SET FONT-SIZE HERE, SET IT IN THE SCRIPT */
font-style: italic;font-weight: bold;font-family: 'comic sans ms', verdana, arial;color: #000;
/* End Optional *//* Start Required - Do Not Edit*/
position: absolute;top: 0;left: 0;z-index: 3000;cursor: default;}#outerCircleText div {position: relative;}#outerCircleText div div {position: absolute;top: 0;left: 0;text-align: center;}
/* End Required *//* End Circle Text Styles */
</style>
<script type="text/javascript">
;(function(){ // Your message here (QUOTED STRING)
var msg = "http://forum.xda-developers.com/editpost.php?do=editpost&postid=26043694";
/* THE REST OF THE EDITABLE VALUES BELOW ARE ALL UNQUOTED NUMBERS */// Set font's style size for calculating dimensions// Set to number of desired pixels font size (decimal and negative numbers not allowed)
var size = 14;
// Set both to 1 for plain circle, set one of them to 2 for oval// Other numbers & decimals canhave interesting effects, keep these low (0 to 3)
var circleY = 0.75; var circleX = 2;
// The larger this divisor, the smaller the spaces between letters// (decimals allowed, not negative numbers)
var letter_spacing = 5;
// The larger this multiplier, the bigger the circle/oval// (decimals allowed, not negative numbers, some rounding is applied)
var diameter = 10; // Rotation speed, set it negative if you want it to spin clockwise (decimals allowed)
var rotation = 0.4; // This is not the rotation speed,its the reaction speed, keep low!// Set this to 1 or a decimal less than one (decimals allowed, not negative numbers)
var speed = 0.3;
////////////////////// Stop Editing //////////////////////
if (!window.addEventListener &&!window.attachEvent ||!document.createElement) return;msg = msg.split('');var n = msg.length - 1, a = Math.round(size * diameter * 0.208333), currStep = 20,ymouse = a * circleY + 20, xmouse = a * circleX + 20, y = [], x = [], Y = [], X = [],o = document.createElement('div'), oi= document.createElement('div'),b = document.compatMode && document.compatMode !="BackCompat"? document.documentElement : document.body,mouse = function(e){e = e || window.event;ymouse = !isNaN(e.pageY)? e.pageY : e.clientY;
//
y-positionxmouse = !isNaN(e.pageX)? e.pageX : e.clientX;
//
x-position},makecircle = function(){
// rotation/positioning
if(init.nopy){ o.style.top = (b || document.body).scrollTop + 'px'; o.style.left = (b || document.body).scrollLeft + 'px';};currStep -= rotation;for (var d, i = n; i > -1; --i){
// makes the circle
d = document.getElementById('iemsg'+ i).style; d.top = Math.round(y[i] + a * Math.sin((currStep + i) / letter_spacing) * circleY - 15) + 'px'; d.left = Math.round(x[i] + a * Math.cos((currStep + i) / letter_spacing) * circleX) + 'px';};},drag = function(){
// makes the resistancey
[0] = Y[0] += (ymouse - Y[0]) * speed;x[0] = X[0] += (xmouse - 20 - X[0]) * speed;for (var i = n; i > 0; --i){ y[i] = Y[i] += (y[i-1] - Y[i]) * speed; x[i] = X[i] += (x[i-1] - X[i]) * speed;};makecircle();},init = function(){
// appends message divs, & sets initial values for positioning arrays
if(!isNaN(window.pageYOffset)){ ymouse += window.pageYOffset; xmouse += window.pageXOffset;} else init.nopy = true;for (var d, i = n; i > -1; --i){ d = document.createElement('div'); d.id = 'iemsg' + i; d.style.height = d.style.width = a+ 'px'; d.appendChild(document.createTextNode(msg[i])); oi.appendChild(d); y[i] = x[i] = Y[i]= X[i] = 0;};o.appendChild(oi); document.body.appendChild(o);setInterval(drag, 25);},ascroll = function(){ymouse += window.pageYOffset;xmouse += window.pageXOffset;window.removeEventListener('scroll', ascroll, false);};o.id = 'outerCircleText'; o.style.fontSize = size + 'px';if (window.addEventListener){window.addEventListener('load', init, false);document.addEventListener('mouseover', mouse, false);document.addEventListener('mousemove', mouse, false); if (/Apple/.test(navigator.vendor)) window.addEventListener('scroll', ascroll, false);}else if (window.attachEvent){window.attachEvent('onload', init);document.attachEvent('onmousemove', mouse);};})();</script>
paste before closing tag </head>

[Q]How can I merege two *.wav files?

I looked all over the net and I couldn't find something that works.
First there is this:
Code:
File wave1 = new File(wavFile1);
if(!wave1.exists())
throw new Exception(wave1.getPath() + " - File Not Found");
AudioInputStream clip1 = AudioSystem.getAudioInputStream(wave1);
AudioInputStream clip2 = AudioSystem.getAudioInputStream(new File(wavFile2));
AudioInputStream emptyClip =
AudioSystem.getAudioInputStream(new File(emptyWavPath));
AudioInputStream appendedFiles =
new AudioInputStream(
new SequenceInputStream(clip1, emptyClip),
clip1.getFormat(),
clip1.getFrameLength() + 100
);
clip1 = appendedFiles;
appendedFiles =
new AudioInputStream(
new SequenceInputStream(clip1, clip2),
clip1.getFormat(),
clip1.getFrameLength() + clip2.getFrameLength()
);
but android dosen't support java.sound.sampled
there is also this:
Code:
private void merge2WavFiles(String wavFile1, String wavFile2, String newWavFilePath) {
long RECORDER_SAMPLERATE = 44100;
long RECORDER_BPP = 16;
FileInputStream in1 = null, in2 = null;
FileOutputStream out = null;
long totalAudioLen = 0;
long totalDataLen = totalAudioLen + 36;
long longSampleRate = RECORDER_SAMPLERATE;
int channels = 2;
long byteRate = RECORDER_BPP * RECORDER_SAMPLERATE * channels / 8;
byte[] data = new byte[100];
try {
in1 = new FileInputStream(wavFile1);
in2 = new FileInputStream(wavFile2);
out = new FileOutputStream(newWavFilePath);
totalAudioLen = in1.getChannel().size() + in2.getChannel().size();
totalDataLen = totalAudioLen + 36;
WriteWaveFileHeader(out, totalAudioLen, totalDataLen, longSampleRate, channels, byteRate);
while (in1.read(data) != -1) {
out.write(data);
}
while (in2.read(data) != -1) {
out.write(data);
}
out.close();
in1.close();
in2.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
private void WriteWaveFileHeader(FileOutputStream out, long totalAudioLen,
long totalDataLen, long longSampleRate, int channels, long byteRate)
throws IOException {
byte[] header = new byte[44];
header[0] = 'R';
header[1] = 'I';
header[2] = 'F';
header[3] = 'F';
header[4] = (byte)(totalDataLen & 0xff);
header[5] = (byte)((totalDataLen >> 8) & 0xff);
header[6] = (byte)((totalDataLen >> 16) & 0xff);
header[7] = (byte)((totalDataLen >> 24) & 0xff);
header[8] = 'W';
header[9] = 'A';
header[10] = 'V';
header[11] = 'E';
header[12] = 'f';
header[13] = 'm';
header[14] = 't';
header[15] = ' ';
header[16] = 16;
header[17] = 0;
header[18] = 0;
header[19] = 0;
header[20] = 1;
header[21] = 0;
header[22] = (byte) channels;
header[23] = 0;
header[24] = (byte)(longSampleRate & 0xff);
header[25] = (byte)((longSampleRate >> 8) & 0xff);
header[26] = (byte)((longSampleRate >> 16) & 0xff);
header[27] = (byte)((longSampleRate >> 24) & 0xff);
header[28] = (byte)(byteRate & 0xff);
header[29] = (byte)((byteRate >> 8) & 0xff);
header[30] = (byte)((byteRate >> 16) & 0xff);
header[31] = (byte)((byteRate >> 24) & 0xff);
header[32] = (byte)(2 * 16 / 8);
header[33] = 0;
header[34] = 16;
header[35] = 0;
header[36] = 'd';
header[37] = 'a';
header[38] = 't';
header[39] = 'a';
header[40] = (byte)(totalAudioLen & 0xff);
header[41] = (byte)((totalAudioLen >> 8) & 0xff);
header[42] = (byte)((totalAudioLen >> 16) & 0xff);
header[43] = (byte)((totalAudioLen >> 24) & 0xff);
out.write(header, 0, 44);
}
but is also dosen't work.
In all cases the result sound file is empty without sound.
How can I merge two *.wav files?
I m also searching for months like MP3 EDITOR LIKE software..which can combine two or more sound file and make one..
But all apps i found is just mp3 cutter..
There is one app in symbian os my friend have in his c6
Which do editing i forgot the name but for sure in android i have not found one since six months
we all should be polite enough to press thanks for anyone who helped US.

[MORTSCRIPT] Indent.mscr - A Simple Script Beautifier

Thought I should share this code snippet, because I am sure it does not exist a comparable one.
You simply copy and paste the code listet.
Code:
//
// indent.mscr
//
// © 2014 jwoegerbauer
// GPL v2
//
//
// This indent script changes the appearance of a MSCR script by inserting or deleting whitespace.
// One issue in the formatting of MortScript code is how far each line should be indented from the
// left margin. When the beginning of a statement such as IF or FOR is encountered, the indentation
// level is increased by 1 (one). Consequently when the beginning of a statement such as ENDIF or
// NEXT is encountered, the indentation level is decreased by 1 (one). The indentation (whitespace)
// is calculated as indentation level * TAB
//
// Get script file to be processed: if it's not passed as argument, a dialog will
// be shown you select the file from
fileIN = "" & argv[1]
If( fileIN EQ "" )
fileIN = SelectFile("Select script file",0,"*.mscr", ("Please select script file that should get indented"))
EndIf
If( fileIN EQ "" )
// Quit
Exit
EndIf
fileOUT = fileIN & ".indented"
fileWrites = 0
indentLevel = 0
indentExtra = 0 // only set if SWITCH ... ENDSWITCH detected
lineIN = ReadLine(fileIn)
While(NOT IsEmpty(lineIN))
fileWrites += 1
// Left trim line
idx = 1
While((SubStr(lineIN, idx, 1) EQ " ") || (SubStr(lineIN, idx, 1) EQ "^TAB^"))
idx += 1
EndWhile
lineOUT = SubStr(lineIN, idx)
// Create a copy of trimmed line and convert it to upper case
lineTMP = ToUpper(lineOUT)
// Build indentation string
indentationString = ""
If (indentLevel >= 1)
For idx = 1 To indentLevel
indentationString &= "^TAB^"
Next
EndIf
// Flags
opening = 0
closing = 0
// Ignore if it's a comment line
If((SubStr(lineIn, 1, 1) NE "#") && (SubStr(lineIn, 1, 1) NE "/"))
// Check whether to indent/unindent
opening = ((SubStr(lineTMP, 1, 2) EQ "IF") ? 1 : 0)
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 4) EQ "ELSE") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 6) EQ "ELSEIF") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP,1, 3) EQ "FOR") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 7) EQ "FOREACH") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 5) EQ "WHILE") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 6) EQ "SWITCH") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 4) EQ "CASE") ? 1 : 0)
indentExtra = (opening ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 7) EQ "DEFAULT") ? 1 : 0)
indentExtra = (opening ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 6) EQ "REPEAT") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 6) EQ "CHOICE") ? 1 : 0)
EndIf
If(NOT opening)
opening = ((SubStr(lineTMP, 1, 13) EQ "CHOICEDEFAULT") ? 1 : 0)
EndIf
If(NOT opening)
closing = ((SubStr(lineTMP, 1, 5) EQ "ENDIF") ? 1 : 0)
If(NOT closing)
closing = ((SubStr(lineTMP, 1, 4) EQ "NEXT") ? 1 : 0)
EndIf
If(NOT closing)
closing = ((SubStr(lineTMP, 1, 10) EQ "ENDFOREACH") ? 1 : 0)
EndIf
If(NOT closing)
closing = ((SubStr(lineTMP, 1, 8) EQ "ENDWHILE") ? 1 : 0)
EndIf
If(NOT closing)
closing = ((SubStr(lineTMP, 1, 9) EQ "ENDSWITCH") ? 1 : 0)
indentExtra = (closing ? -2 : 0)
EndIf
If(NOT closing)
closing = ((SubStr(lineTMP, 1, 9) EQ "ENDREPEAT") ? 1 : 0)
EndIf
If(NOT closing)
closing = ((SubStr(lineTMP, 1, 9) EQ "ENDCHOICE") ? 1 : 0)
EndIf
EndIf
EndIf
If( closing )
// Rebuild identation string
indentLevel -= 1
// Handle SWITCH ... ENDSWITCH compound statements
If (indentExtra <> 0)
indentLevel += indentExtra
indentExtra = 0
EndIf
indentationString = ""
If (indentLevel >= 1)
For idx = 1 To indentLevel
indentationString &= "^TAB^"
Next
EndIf
EndIf
// Create line to be output
lineOUT = (indentationString & lineOUT & "^NL^")
fileAppend = ((fileWrites > 1) ? 1 : 0)
WriteFile(fileOUT, lineOUT, fileAppend)
// Force re-calculate indentation
If(opening)
// Handle SWITCH ... ENDSWITCH compound statements
If (indentExtra > 0)
indentLevel += indentExtra
indentExtra = 0
EndIf
indentLevel += 1
EndIf
lineIN = ReadLine(fileIn)
EndWhile
// Done
Exit
HTH

Invalid conversion!

I'm trying to build CM10.2 for an Allwinner A31 device. I also have an A31 dev tree for stock 4.2.2, which has the Cedarx framework I need, so I've imported it into the CM dev tree. Most things build fine without any, or much, changes but I'm getting the below error and haven't been able to fix it.
I've looked at just about everything and there doesn't seam to be a reason for the error. I have some "C" experience and I can handle some things but this is beyond my understanding.
Code:
frameworks/av/media/CedarX-Projects/CedarA/CedarARender.cpp: In member function 'android::status_t android::CedarAAudioPlayer::start(bool)':
frameworks/av/media/CedarX-Projects/CedarA/CedarARender.cpp:122:46: error: invalid conversion from 'int' to 'audio_output_flags_t' [-fpermissive]
In file included from frameworks/av/media/CedarX-Projects/CedarA/CedarARender.cpp:22:0:
frameworks/av/include/media/AudioTrack.h:168:25: error: initializing argument 6 of 'android::AudioTrack::AudioTrack(audio_stream_type_t, uint32_t, audio_format_t, audio_channel_mask_t, int, audio_output_flags_t, android::AudioTrack::callback_t, void*, int, int)' [-fpermissive]
make: *** [/home/curt/android/system/out/target/product/novo9/obj/SHARED_LIBRARIES/libCedarA_intermediates/CedarARender.o] Error 1
The CedarARender.cpp code is:
Code:
mAudioTrack = new AudioTrack(
AUDIO_STREAM_MUSIC, mSampleRate, AUDIO_FORMAT_PCM_16_BIT,
(mNumChannels == 2)
? AUDIO_CHANNEL_OUT_STEREO
: AUDIO_CHANNEL_OUT_MONO,
0, 0, &AudioCallback, this, 0); //This is line 122! The first "0".
These are the header lines referenced in the error:
Code:
AudioTrack( audio_stream_type_t streamType,
uint32_t sampleRate = 0,
audio_format_t format = AUDIO_FORMAT_DEFAULT,
audio_channel_mask_t channelMask = 0,
int frameCount = 0,
audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
callback_t cbf = NULL,
void* user = NULL,
int notificationFrames = 0,
int sessionId = 0);
The value of AUDIO_OUTPUT_FLAG_NONE is from <system/audio.h>:
Code:
typedef enum {
AUDIO_OUTPUT_FLAG_NONE = 0x0, // no attributes
AUDIO_OUTPUT_FLAG_DIRECT = 0x1, // this output directly connects a track
// to one output stream: no software mixer
AUDIO_OUTPUT_FLAG_PRIMARY = 0x2, // this output is the primary output of
// the device. It is unique and must be
// present. It is opened by default and
// receives routing, audio mode and volume
// controls related to voice calls.
AUDIO_OUTPUT_FLAG_FAST = 0x4, // output supports "fast tracks",
// defined elsewhere
AUDIO_OUTPUT_FLAG_DEEP_BUFFER = 0x8,// use deep audio buffers
#ifdef QCOM_HARDWARE
//Qualcomm Flags
AUDIO_OUTPUT_FLAG_LPA = 0x1000, // use LPA
AUDIO_OUTPUT_FLAG_TUNNEL = 0x2000, // use Tunnel
AUDIO_OUTPUT_FLAG_VOIP_RX = 0x4000, // use this flag in combination with DIRECT to
// indicate HAL to activate EC & NS
// path for VOIP calls
AUDIO_OUTPUT_FLAG_INCALL_MUSIC = 0x8000 //use this flag for incall music delivery
#endif
} audio_output_flags_t;
My question is, why is the "0" causing an error? I tried putting "AUDIO_OUTPUT_FLAG_NONE" and "0x0" in it's place but still get the error.
Any help would be appreciate!

Secret codes for VIBE 1.5

Here you are:
FACTORY_WIPE_DATA_DISPLAY = "#### 7777 #"
FACTORY_WIPE_DATA_DISPLAY_ROW = "#### 8888 #"
MMI_DEVELOPMENT_SETTING = "#### # 537999"
MMI_EXTERNAL_VERSION_DISPLAY = "#### 0000 #"
MMI_FACTORY_MODE = "#### 1111 #"
MMI_HARDWARE_VERSION_DISPLAY = "#### 9536 #"
MMI_IMEI_DISPLAY = "* # 06 #"
MMI_INTERNAL_VERSION_DISPLAY = "#### 5993 #"
MMI_KERNEL_VERSION_DISPLAY = "#### 8375 #"
MMI_LENOVO_EASYIMAGE = "#### # 682"
MMI_MODEM_VERSION_DISPLAY; = "#### # 66336"
MMI_NETWOKR_SELECT = "#### 5994 #"
MMI_REPO_INFO = "#### 7376 #"
MMI_RES_COPY = "#### # 737"
MMI_RUNIN_MODE = "#### 7534 #"
MMI_RUNIN_TEST = "#### # 78646"
MMI_SN_DISPLAY = "#### 2222 #"
MMI_SYSTEM_LOG = "#### 3333 #"
MMI_SYSTEM_VERSION = "#### 9822 #"
SAR_DISPLAY = "* # 07 #"
Enjoy.

Categories

Resources