Backend do Solid para ModemManager
Bem, depois de muito trabalho neste final de semana eu terminei de alterar o patch que já tinha feito para funcionar como um verdadeiro backend do solid. Mas deu trabalho, muita coisa para mudar de lugar, arquivos para acrescentar, decidir como juntar algumas interfaces do MM em uma classe só pra simplificar o código e… corrigir os bugs. Um em particular me tomou um tempasso. Uma das classes que criei, ModemGsmNetworkInterface, herda da ModemInterface e declarava um d_ptr sendo que não deveria, somente a ModemInterface deveria declarar esse apontador. Por causa desse bug toda vez que se criava um objeto do tipo ModemGsmNetworkInterface e tentava usar um dos métodos pertencente a ele o programa morreria. Essse deu trabalho pra descobrir, depois dele ainda tive que resolver um loop infinito, brigar com os strings dos signals e slots, se você vê muitas mensagens "No such signal" (ou slot) no seu ~/.xsession-errors você sabe do que estou falando. No final quase tudo funcionou, ainda tem um problema de na hora de desconectar o modem da porta USB o programa morrer. Isso é porque um dos objetos se torna inválido e o código ainda não detecta isso. Vou corrigir isso no próximo final de semana, agora eu preciso é de descanso e ainda tenho um monte de coisa para fazer durante essa semana. Nesse ritmo acho que eu termino essa parte do solid até o fim de junho.

