URI:
   DIR Return Create A Forum - Home
       ---------------------------------------------------------
       IMVUElite
  HTML https://imvusins.createaforum.com
       ---------------------------------------------------------
       *****************************************************
   DIR Return to: Discussions
       *****************************************************
       #Post#: 108--------------------------------------------------
       Imvu voice chat
       By: PATRON Date: January 3, 2018, 5:24 pm
       ---------------------------------------------------------
       is there a way for custom client with voice chat drivers to
       public users ?
       :/ :/ :/
       #Post#: 109--------------------------------------------------
       Re: Imvu voice chat
       By: Lags Date: January 3, 2018, 6:34 pm
       ---------------------------------------------------------
       Let me look into it. i need to figure out what client was the
       last client that had that and redirect the voice chat to a
       private server. cause that was a server it connected to to voice
       chat.
       #Post#: 110--------------------------------------------------
       Re: Imvu voice chat
       By: Lags Date: January 3, 2018, 7:07 pm
       ---------------------------------------------------------
       I don't think its possible because the API's that consistence
       before are no longer there. i could keep looking into it :)
       [quote]function VoiceProduct(productObject, imvuCall,
       voiceTestController, vivoxControl, myFonts) {
       this.vivoxControl = vivoxControl;
       this.voiceTestController = voiceTestController;
       this.imvuCall = imvuCall;
       this.data = productObject;
       this.element =
       IMVU.Client.widget.ProductBase.template.cloneNode(true);
       
       this.elName =
       IMVU.Client.xpath.getFirstElement("descendant::div[@class='info'
       ]/h3",
       this.element);
       this.elPrice =
       IMVU.Client.xpath.getFirstElement("descendant::div[@class='price
       ']",
       this.element);
       this.elThumb =
       IMVU.Client.xpath.getFirstElement("descendant::div[@class='info'
       ]/div[@class='thumb
       clickable']/img", this.element);
       this.elTryX =
       IMVU.Client.xpath.getFirstElement("descendant::div[@class='try-x
       clickable']", this.element);
       this.elTryOn =
       IMVU.Client.xpath.getFirstElement("descendant::div[@class='try
       clickable']", this.element);
       this.elBuy = YAHOO.util.Selector.query(".buy.clickable",
       this.element, true);
       
       this.elName.innerHTML = this.data.displayName;
       this.elPrice.innerHTML = this.data.price;
       this.elThumb.src = 'img/voice_font_icon_100x80.png';
       //this.data.displayImage;
       this.imvuCall('log', 'vivoxId: '+ this.data.vivoxId);
       this.imvuCall('log', 'name: '+ this.data.displayName);
       this.imvuCall('log', 'myFonts: '+
       YAHOO.lang.JSON.stringify(myFonts));
       if (myFonts.indexOf(this.data.vivoxId) != -1) {
       this.setOwned(true);
       }
       
       YAHOO.util.Dom.addClass(this.element, 'tryable');
       
       YAHOO.util.Event.on(this.elTryOn, 'click', bind(this,
       this.clickTryOn));
       YAHOO.util.Event.on(this.elBuy, 'click', this.clickBuy,
       this, true);
       this.buyClicked = new YAHOO.util.CustomEvent("buyClicked");
       }
       VoiceProduct.prototype = {
       clickTryOn : function(e) {
       IMVU.log( 'clickTry, channel_uri: ' +
       this.vivoxControl.channel_uri );
       
       this.vivoxControl.setVoiceFont(this.data.vivoxId);
       this.voiceTestController.spawnTestWindow();
       },
       clickTakeOff : function(e) {
       this.vivoxControl.setVoiceFont(0);
       },
       clickBuy: function() {
       this.buyClicked.fire(this.data);
       },
       setOwned: function(v) {
       if (v) {
       YAHOO.util.Dom.addClass(this.element,
       "in-inventory");
       } else {
       YAHOO.util.Dom.removeClass(this.element,
       "in-inventory");
       }
       }
       };
       /*jslint forin: true */
       function VoiceMode(baseDiv, paginatorDiv, moreHardwareDiv,
       vivoxControl, kwargs) {
       var voicetestShim = document.createElement('span');
       YAHOO.util.Dom.setStyle(voicetestShim, 'display', 'none');
       
       this.vivoxControl = vivoxControl;
       this.voiceTestController = new
       VoicetestController(voicetestShim, this.vivoxControl, false);
       
       this.vivoxControl.startVivox(bind(this,
       this.onVivoxLoginResult));
       this.baseDiv = baseDiv;
       this.paginatorDiv = paginatorDiv;
       this.imvuCall = kwargs.imvuCall;
       this.net = kwargs.network;
       this.eventBus = kwargs.eventBus;
       this.url = IMVU.SERVICE_DOMAIN + '/api/voice.php';
       this.paginatorDiv = paginatorDiv;
       this.moreHardwareDiv = moreHardwareDiv;
       if(parseInt(kwargs.perPage,10)>0) {
       this._itemsPerPage = parseInt(kwargs.perPage,10);
       } else {
       this._itemsPerPage = 8;
       }
       this._setupTopLevelTabs();
       
       this.setIsLoading(true);
       this.myFonts = [];
       this.vivoxControl.getSessionFonts(bind(this,
       this.handleVoiceFonts));
       var searchMoreHardware = new ImvuButton(
       this.moreHardwareDiv,
       {
       callback: function () {
       IMVU.Client.EventBus.fire('VoiceMode.SearchMoreAmazonClicked',
       {}); },
       scope: this,
       grey: false
       }
       );
       
       YAHOO.util.Event.on(
       ['voice_settings', 'voice_test_call'],
       'click',
       function() {
       
       IMVU.Client.EventBus.fire('VoiceMode.SettingsClicked', {});
       }
       );
       IMVU.Client.util.turnLinksIntoLaunchUrls('voice_faq',
       this.imvuCall);
       }
       VoiceMode.prototype = {
       _dbg: function(t) {
       this.imvuCall('showErrorDialog', 'what', t);
       },
       handleVoiceFonts: function(fonts){
       for each (var f in fonts){
       this.myFonts.push(f.ParentID);
       }
       this._getData();
       },
       
       setIsLoading: function(state) {
       var e = document.getElementById("loading-mask");
       if (state) {
       YAHOO.util.Dom.addClass(e, "visible");
       } else {
       YAHOO.util.Dom.removeClass(e, "visible");
       }
       },
       _getData: function() {
       var self = this;
       var cb = {
       success: function(o) {
       var data = null;
       try {
       data =
       YAHOO.lang.JSON.parse(o.responseText);
       self._onDataComplete(data);
       } catch (e) {
       if (e.constructor != SyntaxError) {
       throw e;
       }
       }
       },
       failure: function(o) {
       self.imvuCall('showErrorDialog', 'Please Try
       Again', 'There was a network problem loading the voice effect
       store.');
       self.imvuCall('endDialog', {});
       }
       };
       
       this.net.asyncRequest('GET', this.url, cb);
       },
       
       _onDataComplete: function(data) {
       
       this._data = [];
       
       for each (var entry in data) {
       this._data.push(entry);
       }
       this._totalPages =
       parseInt(this._data.length/this._itemsPerPage,10);
       if(this._data.length%this._itemsPerPage) {
       this._totalPages++;
       }
       this.paginator = new Paginator(this.paginatorDiv, 1,
       this._totalPages);
       this.paginator.evtClick.subscribe(bind(this,
       this.handlePaginatorClick));
       this.onCompletePageLoad(1);
       this.setIsLoading(false);
       },
       
       handlePaginatorClick: function(evtData) {
       this.onCompletePageLoad(evtData.page);
       },
       _setupTopLevelTabs: function() {
       var tabs = YAHOO.util.Selector.query("li.tab",
       'tabs_main');
       if (tabs.length) {
       YAHOO.util.Event.on(
       tabs,
       'click',
       function() {
       if(YAHOO.util.Dom.hasClass(this,
       'selected')) {
       return;
       }
       var a =
       ['tab_voice_fonts','tab_hardware','voice_fonts','hardware'];
       for (var i in a) {
       YAHOO.util.Dom.removeClass(a[i],
       'selected');
       }
       
       YAHOO.util.Dom.addClass(this.id.replace(/tab_/g, ''),
       'selected');
       YAHOO.util.Dom.addClass(this, 'selected');
       // FIXME:
       IMVU.Client.EventBus.fire('VoiceMode.ReloadAd', {});
       }
       );
       }
       },
       
       onCompletePageLoad: function(pageNum) {
       
       this.baseDiv.innerHTML = '';
       this.currentProducts = [];
       
       var startIdx = (pageNum-1) * this._itemsPerPage;
       var endIdx = startIdx + this._itemsPerPage;
       if(endIdx > this._data.length) {
       endIdx = this._data.length;
       }
       for(var i=startIdx; i<endIdx; i++) {
       var vp = new VoiceProduct(this._data[i],
       this.imvuCall, this.voiceTestController, this.vivoxControl,
       this.myFonts);
       vp.buyClicked.subscribe(bind(this,
       this.onBuyClicked));
       vp.element.id = 'voice_product_'+(i-startIdx);
       this.currentProducts.push(vp);
       
       this.baseDiv.appendChild(this.currentProducts[i-startIdx].elemen
       t);
       }
       this.paginator.update(pageNum,this._totalPages);
       },
       
       onVivoxLoginResult: function(success) {
       var self = this;
       
       this.voiceTestController.handleVivoxStartResult(success);
       this.vivoxControl.getSessionFonts(
       function(){
       bind(self,
       self.voiceTestController.handleVivoxStartResult(success) );
       }
       );
       },
       onNetworkError: function() {
       this.imvuCall('showErrorDialog', 'Please Try Again',
       'There was a network problem with your purchase');
       },
       onBuyClicked: function(eventType, args) {
       voiceFont = args[0];
       var credits =
       parseInt(this.imvuCall('getCreditBalance'), 10);
       var predits = parseInt(this.imvuCall('getPromoBalance'),
       10);
       if(voiceFont.price > (credits + predits)) {
       this.imvuCall(
       'showConfirmationDialog',
       'Insufficient Credit Balance',
       'You do not have enough credits to purchase this
       voice effect.'
       );
       return;
       }
       if(!this.imvuCall('showYesNoDialog', 'Confirm purchase',
       'Are you sure you want to buy ' + voiceFont.displayName + '?  It
       will cost ' + voiceFont.price + ' credits')) {
       return;
       }
       this.setIsLoading(true);
       url = IMVU.SERVICE_DOMAIN +
       '/api/voice_font_purchase.php';
       var self = this;
       var cb = {
       success: function(o) {
       var data = o.responseText;
       self.setIsLoading(false);
       if (data.result != 'success') {
       self.onNetworkError();
       } else {
       IMVU.Client.EventBus.fire('NewVoiceFont',
       {ID:voiceFont.vivoxId});
       self.myFonts.push(voiceFont.vivoxId);
       for each (var product in
       self.currentProducts) {
       if
       (product.data.vivoxId==voiceFont.vivoxId) {
       product.setOwned(true);
       break;
       }
       }
       credits = self.imvuCall('getCreditBalance');
       predits = self.imvuCall('getPromoBalance');
       
       IMVU.Client.EventBus.fire('updateCreditBalances', { credits:
       credits - voiceFont.price, predits:  predits });
       self.imvuCall('showConfirmationDialog',
       'Success', 'You spent ' + voiceFont.price + ' on ' +
       voiceFont.displayName);
       }
       },
       
       failure: function(o) {
       self.setIsLoading(false);
       self.onNetworkError();
       }
       };
       this.net.asyncRequest('POST', url, cb, {voicefont_id:
       voiceFont.vivoxId}, true);
       }
       };
       IMVU.Client.widget.ProductBase.createTemplate();[/quote]
       #Post#: 119--------------------------------------------------
       Re: Imvu voice chat
       By: Lags Date: January 9, 2018, 8:56 pm
       ---------------------------------------------------------
       [center]~This Topic has been moved to Discussions~[/center]
       #Post#: 212--------------------------------------------------
       Re: Imvu voice chat
       By: trukhronik Date: March 9, 2018, 10:01 pm
       ---------------------------------------------------------
       THAT WOULD BE LIT IF THERE 1 U CAN VID CHAT OR HAVE LIKE
       SOMTHING THT CAN TELL U IF THT PERSON IS CATFISHIN
       #Post#: 222--------------------------------------------------
       Re: Imvu voice chat
       By: trukhronik Date: March 9, 2018, 10:46 pm
       ---------------------------------------------------------
       we need tht
       *****************************************************