From ad4fc34cb16abc6615badb152028af4771922540 Mon Sep 17 00:00:00 2001 From: DragonMinded Date: Tue, 2 Feb 2016 05:11:26 +0000 Subject: [PATCH] Load/save JLIP ID so that it can be changed and survive reboots. --- Victor_XV-D701.cpp | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/Victor_XV-D701.cpp b/Victor_XV-D701.cpp index 6f15c39..1fce710 100644 --- a/Victor_XV-D701.cpp +++ b/Victor_XV-D701.cpp @@ -49,6 +49,38 @@ struct victor_state packet_t response; } victor_state; +int VictorGetJLIPID() +{ + int jlip_id = 0; + int count = 0; + FILE * fp = fopen( "jlip_id", "r" ); + + if( fp ) + { + count = fscanf( fp, "%d", &jlip_id ); + fclose( fp ); + } + + if( count != 1 ) + { + /* Default for Twinkle */ + jlip_id = 33; + } + + return jlip_id; +} + +void VictorSetJLIPID( int jlip_id ) +{ + FILE * fp = fopen( "jlip_id", "w" ); + + if( fp ) + { + fprintf( fp, "%d", jlip_id ); + fclose( fp ); + } +} + unsigned char CalcChecksum( const packet_t packet ) { unsigned char sum = 0x80; @@ -303,7 +335,8 @@ packet_t HandleDevicePacket( packet_t packet ) verbose_printf( "Change JLIP ID to %d\n", new_id ); packet_t response = CreatePacket( victor_state.jlip_id, STATUS_OK, NO_RESPONSE ); - victor_state.jlip_id = new_id; /* TODO: Save this to file */ + victor_state.jlip_id = new_id; + VictorSetJLIPID( new_id ); return response; } else @@ -416,7 +449,7 @@ packet_t HandlePacket( packet_t packet ) void VictorInit( int type ) { - victor_state.jlip_id = 33; /* TODO: Read this from file */ + victor_state.jlip_id = VictorGetJLIPID(); victor_state.dvd_type = type; memset( victor_state.packet, 0, PACKET_LEN ); victor_state.response = NULL;