Control BlinkM led via Bluetooth

I understand i need to use SoftwareSerial to identify RX/TX. Then I suppose I can somehow integrate that into this code to control the BlinkM. Thanks!

/*
 * BlinkMScriptWriter -- Example of how to write light scripts
 *
 * BlinkM connections to Arduino
 * PWR - -- gnd -- black -- Gnd
 * PWR + -- +5V -- red   -- 5V
 * I2C d -- SDA -- green -- Analog In 4
 * I2C c -- SCK -- blue  -- Analog In 5
 *
 * Note: This sketch resets the I2C address of the BlinkM.
 *       If you don't want this behavior, comment out "BlinkM_setAddress()"
 *       in setup() and change the variable "blink_addr" to your BlinkM's addr.
 *
 *
 * 2007-8, Tod E. Kurt, ThingM, http://thingm.com/
 */

// so we can see BlinkM_funcs working
#define BLINKM_FUNCS_DEBUG 1 

#include "Wire.h"
#include "BlinkM_funcs.h"

int blinkm_addr = 0x09;


//  the example script we're going to write
blinkm_script_line script1_lines[] = {
 {  1,  {'f', 10,00,00}},
 {  10, {'c', 0x21,0x22,0x23}},  // dim white
 {  10, {'c', 0x41,0x42,0x43}},  // dim white
 {  10, {'c', 0x61,0x62,0x63}},  // dim white
 {  10, {'c', 0x81,0x82,0x83}},  // dim white
 {  50, {'c', 0xa1,0xa2,0xa3}},  // dim white
 {  50, {'c', 0xfd,0xfd,0x01}},  // mostly orange
 {  50, {'c', 0x02,0xfe,0xfe}},  // mostly teal
};
int script1_len = 8;  // number of script lines above


char serInStr[30];  // array that will hold the serial input string


void help()
{
  Serial.println("\r\nBlinkMScriptWriter!\n"
                 "'W' to write the script\n"
                 "'R' to read back the script\n"
                 "'p' to play back the script indefinitely\n"
                 "'o' to stop script playback\n"
                 "'0' to fade to black\n"
                 );
}

void setup()
{
    BlinkM_beginWithPower();

    BlinkM_setAddress( blinkm_addr );
    
    Serial.begin(19200); 
    byte rc = BlinkM_checkAddress( blinkm_addr );
    if( rc == -1 ) 
        Serial.println("\r\nno response");
    else if( rc == 1 ) 
        Serial.println("\r\naddr mismatch");

    help();
    Serial.print("cmd>");
}

void loop()
{
    //read the serial port and create a string out of what you read
    if( readSerialString() ) {
        Serial.println(serInStr);
        char cmd = serInStr[0];
        int num = atoi(serInStr+1);
        if( cmd == 'W' ) {
            Serial.println("Writing new script...");
            BlinkM_writeScript( blinkm_addr, 0, script1_len, 0, script1_lines);
            Serial.println("done.");
        }
        else if( cmd == 'R' ) { 
            Serial.println("Reading back script...");
            
        }
        else if( cmd == 'p' ) {
            Serial.println("Playing Script 0 repeatedly");
            BlinkM_playScript( blinkm_addr, 0,0,0 );
        }
        else if( cmd == 'o' ) {
            Serial.println("Stopping Script 0");
            BlinkM_stopScript( blinkm_addr );
        }
        else if( cmd =='0' ) {
            Serial.println("Fade to black");
            BlinkM_fadeToRGB( blinkm_addr, 0,0,0);
        }
    }
}

//read a string from the serial and store it in an array
//you must supply the array variable
uint8_t readSerialString()
{
  if(!Serial.available()) {
    return 0;
  }
  delay(10);  // wait a little for serial data
  int i = 0;
  while (Serial.available()) {
    serInStr[i] = Serial.read();   // FIXME: doesn't check buffer overrun
    i++;
  }
  serInStr[i] = 0;  // indicate end of read string
  return i;  // return number of chars read
}